Routines |
Prev: D5D4 | Up: Map | Next: D63A |
|
||||
For a creature entering the room - sets up graphics and determines its speed/direction of movement.
|
||||
D5FE | LD A,($EBB7) | Creature type (see EB46) | ||
D601 | CP $00 | |||
D603 | JR Z,$D63A | If no creature, skip to the next routine | ||
D605 | CALL $E16A | This routine sets up data for creatures/warlocks appearing in Maroc's room (the A register normally contains creature type/number from EB46) | ||
D608 | LD A,($EBB8) | Creature's horizontal position (in 4 pixel steps) in room, after entering through a door | ||
D60B | LD ($EB48),A | Copy to graphic data buffer | ||
D60E | LD C,A | |||
D60F | LD A,($EBB9) | Creature's vertical pixel position in room, after entering through a door | ||
D612 | SUB $0E | Adjust slightly by moving vertical position up 14 pixels. This puts the creatures in the doorway itself when they appear, rather than looking as if they've appeared a couple of feet into the room | ||
D614 | LD ($EB4A),A | Copy to graphic data buffer | ||
Calculate which area of the room (left, right or back wall door) the creature is entering from, and set their speed/direction accordingly:
|
||||
D617 | LD DE,$0004 | If the forthcoming checks don't hit a match, the creature is between the room floor/wall connectors, so entering through a BACK WALL DOOR | ||
D61A | LD A,C | (Superfluous instruction, as this value is immediately overwritten in next one) | ||
D61B | LD A,($EAFB) | Left room corner section - floor/wall connector - graphic's horizontal position, in half character squares (4 pixel steps) | ||
D61E | CP C | Compare with creature's horizontal position (also in 4 pixel steps) | ||
D61F | JR C,$D626 | |||
D621 | LD DE,$0400 | Creature is to the left of the room's left connector, so entering through a LEFT WALL DOOR | ||
D624 | JR $D62F | |||
D626 | LD A,($EAFC) | Right wall corner section - floor/wall connector - graphic's horizontal position, in half character squares (4 pixel steps) | ||
D629 | CP C | Compare with creature's horizontal position (also in 4 pixel steps) in room | ||
D62A | JR NC,$D62F | |||
D62C | LD DE,$FC00 | Creature is to the right or the room's right (wall/floor) connector graphics - so entering through a RIGHT WALL DOOR | ||
D62F | LD A,D | |||
D630 | LD ($EB4C),A | Horizontal speed/direction | ||
D633 | LD A,E | |||
D634 | LD ($EB4D),A | Vertical speed/direction | ||
D637 | JP $D6C7 |
Prev: D5D4 | Up: Map | Next: D63A |