Routines |
Prev: 52047 | Up: Map | Next: 52098 |
Drutt will only push other entities when he is under player control. If he is not, then he will just pass through pushable entities.
Used by the routine at 52047.
|
||||||||
52053 | CALL 54666 | Check entity at IX for collision with another impassable / pushable entity immediately to the left... | ||||||
52056 | JR C,52087 | ...and if a collision has not occurred, then skip ahead to 52087 | ||||||
At this point, a collision has occurred, so IY points to the complex state data entry of the entity with which Drutt has collided
|
||||||||
52058 | CP 22 | If collision was with an entity of class of 22 or greater (can't be picked up)... | ||||||
52060 | JR NC,52076 | ...then skip ahead to 52076 | ||||||
52062 | BIT 1,(IX+9) | If Drutt's under-player-control flag is reset... | ||||||
52066 | JR Z,52087 | ...then skip ahead to 52087 (move Drutt left without pushing anything) | ||||||
52068 | PUSH IX | Store IX (address of current level's complex state data for Drutt) | ||||||
52070 | CALL 52098 | Advance position of entity pushed left by Drutt | ||||||
52073 | POP IX | Restore IX (address of current level's complex state data for Drutt) | ||||||
52075 | RET | Return | ||||||
Collision with entity of class 22 or greater
|
||||||||
52076 | CP 129 | If collision was with entity of class 129 (causes other entities to start falling)... | ||||||
52078 | JR Z,52087 | ...then skip ahead to 52087 | ||||||
At this point, the entity to Drutt's left is neither passable nor pushable.
|
||||||||
52080 | POP BC | Remove top value from stack (i.e. return address to routine that called this routine) | ||||||
52081 | LD HL,51630 | Point HL at script data for Drutt swapping depth levels... | ||||||
52084 | JP 48098 | ...and execute | ||||||
No collision, not under player control or collision with entity of class 129
|
||||||||
52087 | CALL 54348 | Move Drutt into room to the left, if appropriate... | ||||||
52090 | RET NC | ...and if Drutt can't enter new room then return | ||||||
52091 | DEC (IX+5) | Move Drutt left one character... | ||||||
52094 | DEC (IX+7) | ... | ||||||
52097 | RET | Return |
Prev: 52047 | Up: Map | Next: 52098 |