Staredit Network

Staredit Network -> Modding Assistance -> Updating IceCC
Report, edit, etc...Posted by ShadowFlare on 2006-10-25 at 16:09:34
I have the last version of the source code for IceCC and I decided I would like to update it, but I need to know what to update.

What names in the headers need to be changed and what opcodes need to be renamed or identified? Also, any significant bugs that need to be fixed?

-EDIT-

Updated the tables below with the current ones from the 1.3 source code.

The current animation names from the 1.3 source code:
CODE
char *table_animno_to_name[] = {
 "Init",
 "Death",
 "GndAttkInit",
 "AirAttkInit",
 "Unused1",
 "GndAttkRpt",
 "AirAttkRpt",
 "CastSpell",
 "GndAttkToIdle",
 "AirAttkToIdle",
 "Unused2",
 "Walking",
 "WalkingToIdle",
 "SpecialState1", // Some sort of category of special animations, in some cases an in-transit animation, sometimes used for special orders, sometimes having to do with the animation when something finishes morphing, or the first stage of a construction animation
 "SpecialState2", // Some sort of category of special animations, in some cases a burrowed animation, sometimes used for special orders, sometimes having to do with the animation when canceling a morph, or the second stage of a construction animation
 "AlmostBuilt",
 "Built",
 "Landing",
 "LiftOff",
 "IsWorking",
 "WorkingToIdle",
 "WarpIn",
 "Unused3",
 "StarEditInit",
 "Disable",
 "Burrow",
 "UnBurrow",
 "Enable",
 NULL,
};


The current opcodes table from the 1.3 source code:
CODE
IsInstrFmt __iscript_instructions[] = {
 {"playfram",         INSTR_NORMAL,        get_uint16, write_uint16},
 {"playframtile",     INSTR_NORMAL,        get_uint16, write_uint16},
 {"sethorpos",        INSTR_NORMAL,        get_byte, write_byte},
 {"setvertpos",       INSTR_NORMAL,        get_byte, write_byte},
 {"setpos",           INSTR_NORMAL,        get_byte_byte, write_byte_byte},
 {"wait",             INSTR_NORMAL,        get_byte, write_byte},
 {"waitrand",         INSTR_NORMAL,        get_byte_byte, write_byte_byte},
 {"goto",             INSTR_JMP,           get_uint16, write_uint16},
 {"imgol",            INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"imgul",            INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"imgolorig",        INSTR_NORMAL,        get_uint16, write_uint16},
 {"switchul",         INSTR_NORMAL,        get_uint16, write_uint16},
 {"__0c",             INSTR_NORMAL,        get_none, write_none},
 {"imgoluselo",       INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"imguluselo",       INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"sprol",            INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"highsprol",        INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"lowsprul",         INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"uflunstable",      INSTR_NORMAL,        get_uint16, write_uint16},
 {"spruluselo",       INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"sprul",            INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"sproluselo",       INSTR_NORMAL,        get_uint16_byte, write_uint16_byte},
 {"end",              INSTR_TERM,          get_none, write_none},
 {"setflipstate",     INSTR_NORMAL,        get_byte, write_byte},
 {"playsnd",          INSTR_NORMAL,        get_uint16, write_uint16},
 {"playsndrand",      INSTR_NORMAL,        get_byte_v_uint16, write_byte_v_uint16},
 {"playsndbtwn",      INSTR_NORMAL,        get_uint16_uint16, write_uint16_uint16},
 {"domissiledmg",     INSTR_NORMAL,        get_none, write_none},
 {"attackmelee",      INSTR_NORMAL,        get_byte_v_uint16, write_byte_v_uint16},
 {"followmaingraphic",INSTR_NORMAL,        get_none, write_none},
 {"randcondjmp",      INSTR_COND_JMP,      get_byte_uint16, write_byte_uint16},
 {"turnccwise",       INSTR_NORMAL,        get_byte, write_byte},
 {"turncwise",        INSTR_NORMAL,        get_byte, write_byte},
 {"turn1cwise",       INSTR_NORMAL,        get_none, write_none},
 {"turnrand",         INSTR_NORMAL,        get_byte, write_byte},
 {"setspawnframe",    INSTR_NORMAL,        get_byte, write_byte},
 {"sigorder",         INSTR_NORMAL,        get_byte, write_byte},
 {"attackwith",       INSTR_NORMAL,        get_byte, write_byte},
 {"attack",           INSTR_NORMAL,        get_none, write_none},
 {"castspell",        INSTR_NORMAL,        get_none, write_none},
 {"useweapon",        INSTR_NORMAL,        get_byte, write_byte},
 {"move",             INSTR_NORMAL,        get_byte, write_byte},
 {"gotorepeatattk",   INSTR_NORMAL,        get_none, write_none},
 {"engframe",         INSTR_NORMAL,        get_byte, write_byte},
 {"engset",           INSTR_NORMAL,        get_byte, write_byte},
 {"__2d",             INSTR_NORMAL,        get_none, write_none},
 {"nobrkcodestart",   INSTR_NORMAL,        get_none, write_none},
 {"nobrkcodeend",     INSTR_NORMAL,        get_none, write_none},
 {"ignorerest",       INSTR_NORMAL,        get_none, write_none},
 {"attkshiftproj",    INSTR_NORMAL,        get_byte, write_byte},
 {"tmprmgraphicstart",INSTR_NORMAL,        get_none, write_none},
 {"tmprmgraphicend",  INSTR_NORMAL,        get_none, write_none},
 {"setfldirect",      INSTR_NORMAL,        get_byte, write_byte},
 {"call",             INSTR_COND_JMP,      get_uint16, write_uint16},
 {"return",           INSTR_TERM,          get_none, write_none},
 {"setflspeed",       INSTR_NORMAL,        get_uint16, write_uint16},
 {"creategasoverlays",INSTR_NORMAL,        get_byte, write_byte},
 {"pwrupcondjmp",     INSTR_COND_JMP,      get_uint16, write_uint16},
 {"trgtrangecondjmp", INSTR_COND_JMP,      get_uint16_uint16, write_uint16_uint16},
 {"trgtarccondjmp",   INSTR_COND_JMP,      get_uint16_uint16_uint16, write_uint16_uint16_uint16},
 {"curdirectcondjmp", INSTR_COND_JMP,      get_uint16_uint16_uint16, write_uint16_uint16_uint16},
 {"imgulnextid",      INSTR_NORMAL,        get_byte_byte, write_byte_byte},
 {"__3e",             INSTR_NORMAL,        get_none, write_none},
 {"liftoffcondjmp",   INSTR_COND_JMP,      get_uint16, write_uint16},
 {"warpoverlay",      INSTR_NORMAL,        get_uint16, write_uint16},
 {"orderdone",        INSTR_NORMAL,        get_byte, write_byte},
 {"grdsprol",         INSTR_NORMAL,        get_uint16_byte_byte, write_uint16_byte_byte},
 {"__43",             INSTR_NORMAL,        get_none, write_none},
 {"dogrddamage",      INSTR_NORMAL,        get_none, write_none},
};
Report, edit, etc...Posted by dumbducky on 2006-10-25 at 16:15:16
Well, I don't know why, but I can't actually get IceCC to work. IceCC just opens a DOS window and closes it real quick. That would be a nice bug to fix.
Report, edit, etc...Posted by Doodle77(MM) on 2006-10-25 at 16:36:33
Thats because its a dos program. Run it on a command line.
@ShadowFlare
http://www.staredit.net/index.php?showtopic=33633
Report, edit, etc...Posted by Ultramilkman on 2006-10-25 at 16:47:11
QUOTE(dumbducky @ Oct 25 2006, 03:14 PM)
Well, I don't know why, but I can't actually get IceCC to work.  IceCC just opens a DOS window and closes it real quick.  That would be a nice bug to fix.
[right][snapback]578747[/snapback][/right]


Command line would be:

Start-->Run-->Cmd
Then type in cd(Insert the Icecc path-- where it's located)
Read the IceCC tutorial after that.

Edit: opps
Report, edit, etc...Posted by Doodle77(MM) on 2006-10-25 at 16:48:06
its cd <path>
Report, edit, etc...Posted by ShadowFlare on 2006-10-25 at 17:40:28
QUOTE(Doodle77(MM) @ Oct 25 2006, 02:36 PM)
Thats because its a dos program. Run it on a command line.
[right][snapback]578755[/snapback][/right]

Or you can use IceCCUI (requires java runtime).
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2006-10-25 at 17:43:35
This topic contains information on many of the "Unknownxx" headers. I don't remember exactly what each of them is, but that topic'll tell you if you read it far enough...
Report, edit, etc...Posted by ShadowFlare on 2006-10-25 at 17:49:42
Here is a set of them I modified based off of a text file I got from somewhere, which looks like it was taken directly from those posts, along with some of my own modifications:

[updated animation names table moved to above]

Does that look OK?
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2006-10-25 at 20:30:19
Looks good to me. TF made a text file about it, but he's not active any more. There is a problem, though: Unknown27 is unknown still, and 23+24 are doodad states; 23 is also used for turret overlays.
Report, edit, etc...Posted by ShadowFlare on 2006-10-25 at 21:23:32
I just checked and found that Unknown24 is used with disable doodad state and Unknown27 is used with enable doodad state. It seems Unknown23 has absolutely nothing to do with doodad state.

-EDIT-

Still need to test it more to confirm this, though. BTW, I was making an iscript and map for testing this.
Report, edit, etc...Posted by Kookster on 2006-10-25 at 21:24:52
make it able to open ice files would be sweet.

Off topic: I sent you a message SF
Report, edit, etc...Posted by ShadowFlare on 2006-10-26 at 01:16:26
Unless 24 or 27 are used for other things sometimes, it seems that they are for doodad states. To test it, I added a different sound for each to unknown23, 24, and 27. The sound would play for 24 on disable doodad state, and the sound for 27 would play on enable doodad state. Nothing I've tried so far with the doodad would make the sound play for 23, though.

ADDITION:
Looking through the iscripts, those look like they are for anything that can be disabled or enabled, through whatever means. This includes being disabled or enabled as a result of psi fields.
Report, edit, etc...Posted by BroodKiller on 2006-10-26 at 03:15:45
The firstmost concern with updating IceCC should be removing the restriction to run only if the programis located under "C:\IceCC". I tried to pick this one out, but after two days of reserch and countless recompilations I wasn't able to pick out where actually does this restriction reside.

Btw, which version of the src do you have?
Report, edit, etc...Posted by ShadowFlare on 2006-10-26 at 13:59:55
It is fairly simple to make it so it doesn't need to be located under C:\IceCC; you just need to change the INSTALL_PATH macro (in one of the source files) to "." instead of "C:\\IceCC" like how it is when compiled for any other platform besides Windows.

The version of the source is 1.2b, but it has a couple changes that were made the next day after he put up 1.2b, so the date on a couple of files is 2005-06-09, rather than 2005-06-08. There was just some debugging stuff that was added, which is disabled by default, so it is basically the 1.2b source code. Then I have a modified opcode list that was included with "IceCC Fix" in the downloads on this site.

BTW, I updated the list of animation names again for the modified one I posted above. I've given the names WalkingToIdle, WorkingToIdle, and TurretInit to some of them that I tested out. "TurretInit" seems to be unused by Starcraft, though. Heh, just two left that don't have specific names (I put some comments by them).
Report, edit, etc...Posted by Oo.Insane.oO on 2006-10-26 at 14:52:08
Why not just make a new gui to go with the program?
Report, edit, etc...Posted by ShadowFlare on 2006-10-26 at 18:56:18
QUOTE(Lakai @ Oct 26 2006, 12:51 PM)
Why not just make a new gui to go with the program?
[right][snapback]579184[/snapback][/right]

confused.gif What for? So it doesn't need java?
Report, edit, etc...Posted by Oo.Insane.oO on 2006-10-26 at 20:08:01
QUOTE(ShadowFlare @ Oct 26 2006, 05:55 PM)
confused.gif  What for?  So it doesn't need java?
[right][snapback]579289[/snapback][/right]


ofcourse smile.gif
Report, edit, etc...Posted by ShadowFlare on 2006-10-26 at 20:23:01
Hmm, I could fairly easily make basically a non-java clone of IceCCUI, or I could maybe make some type of a more sophisticated IDE instead. If I even did either of those at all, I'm not sure whether I'd want to work on a full IDE or not, though.
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2006-10-26 at 21:18:19
There also seems to be a problem with ICECC not displaying errors. I click compile and it doesn't tell me what's wrong; it just refuses to compile. So if you could find a way to fix that, it would be very nice.
Report, edit, etc...Posted by ShadowFlare on 2006-10-26 at 21:28:46
Yeah, I've had that happen sometimes as well.
Report, edit, etc...Posted by IanMM on 2006-10-27 at 00:38:36
Yay IceCC needs to be updated, but please keep it to java so macs can run it sad.gif
Report, edit, etc...Posted by SubFocus on 2006-10-27 at 00:45:55
QUOTE(IanMM @ Oct 27 2006, 12:38 AM)
Yay IceCC needs to be updated, but please keep it to java so macs can run it sad.gif
[right][snapback]579412[/snapback][/right]


Or maybe he could make it non-java, then make a java version for macs.
Report, edit, etc...Posted by ShadowFlare on 2006-10-27 at 01:01:14
The java part is only for IceCCUI, not the script decompiler/compiler programs. Those would need to be recompiled for mac from the source code. Anyway, I wouldn't be actually changing IceCCUI unless it was to fix something (not likely though, since I don't code in java).
Report, edit, etc...Posted by IanMM on 2006-10-28 at 01:05:00
I do.
Maybe i could convert it for macs.
Report, edit, etc...Posted by BSTRhino on 2006-10-28 at 19:05:39
The only real fix I have is sprol42 has the same parameter list as the other sprite overlay commands like sprol0f. It would be nice if that bug was fixed.
Next Page (1)