Prev: 28812 Up: Map Next: 28855
28814: Check for a closed door in a character's path and open it if allowed
Used by the routine at 25581. Checks for a closed door in the character's path and makes him open it if he's an adult.
Input
H Character number (183-209)
28814 CALL 28767 Check for closed doors in the character's path
28817 JP NC,25012 Update the SRB for the character's current animatory state and location if no doors need opening
28820 LD A,H A=character number
28821 SUB 200 Are we dealing with a teacher or ALBERT (i.e. someone who can open doors)?
28823 CP 6
28825 JR C,28833 Jump if so
28827 CALL 25012 Update the SRB for the character's current animatory state and location
28830 XOR 128 Characters who can't open doors have bit 7 of their animatory state flipped (i.e. they are turned around)
28832 RET Return to place the character midstride
The character we're dealing with is confronted by a closed door and is able to open it.
28833 POP DE Drop the return address; we will handle updating the SRB and setting the character's new animatory state here instead
This entry point is used by the routine at 25944.
28834 LD L,19 Place the identifier of the closed door (see 28767) into byte 19 of the character's buffer
28836 LD (HL),C
28837 INC L L=20
28838 LD (HL),1 Signal: open the door
This entry point is used by the routines at 29052 and 62572.
28840 LD L,18 Place the address of the uninterruptible subcommand routine at 28855 into bytes 17 and 18 of the character's buffer
28842 LD (HL),112
28844 DEC L
28845 LD (HL),183
28847 CALL 25012 Update the SRB for the character's current animatory state and location
28850 OR 7 A=animatory state of the character with his arm up (to open the door)
28852 JP 24880 Update the character's animatory state and update the SRB
Prev: 28812 Up: Map Next: 28855