![]() |
Routines |
| Prev: CC3E | Up: Map | Next: CC81 |
|
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 |