| Routines

62278: Control a character who is knocking on or opening a door (1)

The address of this interruptible subcommand routine is placed into bytes 14 and 15 of a character's buffer by the routine at 62264. It makes the character open the door if he can, or knock and begin waiting for an answer.
Input
H | Character number (215-229)
62278 | CALL 62120 | Check whether the character can open the door, and open it if so
62281 | LD L,16 | Point HL at byte 16 of the character's buffer
62283 | JR NC,62325 | Jump if the character has opened the door
62285 | JR Z,62325 | Jump if the character has no keys (only policemen have no keys)
This character (who is not a policeman) has knocked on the door.
62287 | LD (HL),E | Store the LSB of the address of the door knock status flags (see 32682) for the door in byte 16 of the character's buffer
62288 | INC L | Initialise the counter in byte 17 of the character's buffer to 30; this determines how long the character will wait for someone to open the door before giving up
62289 | LD (HL),30
62291 | LD L,14 | Change the address of the interruptible subcommand routine in bytes 14 and 15 of the character's buffer to 62297
62293 | LD (HL),89
62295 | JR 62331 | Lower the character's arm