Prev: CC3E Up: Map Next: CC81
CC4D: Shorten dZ: does the move hit it?
Used by the routine at dZ_obj_shorten.
As dX_obj_hit_test, and two things more. The obstacle gets bit 3 of its +$0D: something has come down on it (or up against it). A block that gives way when stood on, upd_91, waits for that bit. And a mover that can be carried -- bit 2 of +$07, which the player has -- takes on the obstacle's dX and dY wherever its own are zero, so standing on something that moves carries it along.
dZ_obj_hit_test CC4D CALL do_objs_intersect_on_z no overlap in Z: next object
CC50 JR NC,dZ_obj_next
CC52 SET 2,(IX+$0C) stopped in Z
CC56 LD A,(IX+$0D) harm passes both ways, as in X
CC59 RRCA
CC5A AND $40
CC5C OR (IY+$0D)
CC5F LD (IY+$0D),A
CC62 RLCA
CC63 AND $40
CC65 OR (IX+$0D)
CC68 LD (IX+$0D),A
CC6B SET 3,(IY+$0D) the obstacle has been landed on
CC6F BIT 2,(IX+$07) not a mover that can be carried
CC73 JR Z,dZ_obj_shorten
CC75 LD A,(IX+$09) no dX of our own: ride with the obstacle's
CC78 AND A
CC79 JR NZ,dZ_ride_dY
CC7B LD A,(IY+$09)
CC7E LD (IX+$09),A
Prev: CC3E Up: Map Next: CC81