Tutorial written by Shadow
There are 0x01 opcode in iscript: 0x01 %1 %1 - base frame
When you use that opcode, it sets the current frame to base frame and tileset offset.
00 | = | badlands |
01 | = | space |
02 | = | installation |
03 | = | ash |
04 | = | jungle |
05 | = | desert |
06 | = | ice |
07 | = | twilight |
So 01 00 00 code in iscript sets the current frame to 0 for badlands tileset, to 1 for space tileset, to 2 for installation tileset etc. The best way to create tileset-dependent graphic is use this structure of the GRP:
frame | 00 | (badlands) |
frame | 00 | (space) |
frame | 00 | (installation) |
frame | 00 | (ash) |
frame | 00 | (jungle) |
frame | 00 | (desert) |
frame | 00 | (ice) |
frame | 00 | (twilight) |
frame | 01 | (badlands) |
frame | 01 | (space) |
frame | 01 | (installation) |
......... etc. |
When you make an iscript for this graphic use 0x01 opcode instead of 0x00, but don't forget that you must set operand in 0x01 opcode to number of first frame in set. For frame 0 it will be 0x00, for frame 1 it will be 0x08, for frame 2 it will be 0x10 etc.
IMPORTANT: you also must edit all LO* files for that building, because you change overall number of frames, and you need make new shadow graphics for that building. I think that this method works only with building-like graphics (i.e. graphics that can't turn), so using it for units is impossible.