Code: Select all
<hack name="guard types" help="Note that this only affects the resource file that is loaded and therefore the bitmaps that are displayed. For example, if you set up level 3 to use the Jaffar sprite, it will remain unkillable. Killing guards using the skeleton or shadow sprite or meeting a guard when no resource is loaded causes the game to crash, since it would need to load a nonexistent resource.">
<offset file="u0" value="0x1c964"/>
<offset file="u3" value="0x1c702"/>
<offset file="u4" value="0x1905e"/>
<read type="signed short int" name="guard resources demo level" minval="-1" maxval="4">
...
I see that in CusPop, the option is disabled if I select one of the packed executable types.
I guess I can safely assume that if some hack is unavailable for a particular executable type, then it should always be unmodified from the original.
So probably this is not a big deal.
Some other instances where offsets are not available for all executable types:
flipdown hack (only 1.0 unpacked and packed)
quitting when time expires (only 1.0 unpacked) - is there any mod that uses this?
allowed resources per level (only unpacked versions)
cutscenes (only 1.0 unpacked)
loose tiles in level 12 (only 1.0 and 1.4)
changing additional hit-points of guards with different skills (only unpacked versions)
Edit: something else, about the level 3 checkpoint:
Code: Select all
<read default="4" name="location of the tile to clear" type="char" minval="0" maxval="29" help="The room tiles are from 0 to 29 in the same way as the location. Remember that you can erase potions, you can also set it to an empty tile to do nothing."/>
The relevant part of the disassembly is this:
Code: Select all
seg003:01C7 B8 07 00 mov ax, 7
seg003:01CA 50 push ax ; room
seg003:01CB B8 04 00 mov ax, 4 ; <-- 4 is the modified byte
seg003:01CE 50 push ax ; col
seg003:01CF 2B C0 sub ax, ax
seg003:01D1 50 push ax ; row
seg003:01D2 9A 06 00 CB 06 call get_tile