Routines |
Prev: 52053 | Up: Map | Next: 52142 |
Used by the routine at 52053.
|
||||||||
52098 | PUSH IY | Transfer address of complex state data for pushed entity from IY... | ||||||
52100 | POP IX | ...to IX | ||||||
52102 | CALL 54666 | Check pushed entity for collision with another impassable / pushable entity immediately to the left... | ||||||
52105 | JR C,52112 | ...and if a collision has not occurred, then skip ahead to 52112 | ||||||
52107 | CP 129 | If collision was with entity of class 129 (causes other entities to start falling)... | ||||||
52109 | JR Z,52134 | ...then skip ahead to 52134 | ||||||
52111 | RET | Return (as Drutt can't push two entities) | ||||||
No knock-on collision
|
||||||||
52112 | LD A,(IX+5) | If x-coordinate of left edge of pushed entity is at least 103... | ||||||
52115 | CP 103 | ...i.e. not yet at left edge of room... | ||||||
52117 | JR NC,52127 | ...then skip ahead to 52127 | ||||||
52119 | CALL 54539 | Load B with index of room to left of current character's current room... | ||||||
52122 | RET Z | ...and if there is no room to the left then return | ||||||
52123 | CALL 54348 | Move pushed entity into room to the left, if appropriate... | ||||||
52126 | RET NC | ...and if pushed entity can't enter new room then return | ||||||
52127 | DEC (IX+5) | Move pushed entity left one character... | ||||||
52130 | DEC (IX+7) | ... | ||||||
52133 | RET | Return | ||||||
52134 | CALL 55516 | Set can-fall flag and set initial velocity factor of 2 for pushed entity | ||||||
52137 | CALL 52127 | Move pushed entity left two characters... | ||||||
52140 | JR 52127 | ...and return |
Prev: 52053 | Up: Map | Next: 52142 |