Prev: CD75 Up: Map Next: CDA0
CD81: The update routine for things that fall and can be pushed
Used by the routine at SPIKES.
Graphics 63 and 79 (blocks), 72 (a tree stump), and the tails of many other routines. A push from something walking into it (the collision code copies the pusher's step into a pushable thing's) moves it that far this turn; it also falls one unit a turn, since the fall at DEC_DZ_AND_UPDATE_UVZ takes one off the Z step and STOP_MOVING clears it again.
STOP_MOVING is the common ending: if it moved at all this turn, clear the three steps and have it redrawn; if not, return without a redraw, so a thing at rest costs nothing to draw.
Input
IX the object record
PUSHABLE CD81 CALL DRAW_AT_L16_D8 the drawing nudge
This entry point is used by the routines at COLLECTABLE and HEAVY_BLOCK.
FALL CD84 CALL DEC_DZ_AND_UPDATE_UVZ FALL: fall one unit, and move by whatever steps it has
This entry point is used by the routines at COLLECTABLE, SINKING_BLOCK, LIFT, PENTAGRAM_PIECE and BUCKET.
STOP_MOVING CD87 LD A,(IX+$09) STOP_MOVING: did it move?
CD8A OR (IX+$0A)
CD8D OR (IX+$0B)
CD90 RET Z
CD91 LD (IX+$09),$00 yes: clear the steps, and redraw it and what it overlaps
CD95 LD (IX+$0A),$00
CD99 LD (IX+$0B),$00
CD9D JP SET_WIPE_AND_DRAW_FLAGS
Prev: CD75 Up: Map Next: CDA0