Prev: 717A Up: Map Next: 71A6
717C: Make a character open or close a door
Used by command lists 0x16, 0x18, 0x1A, 0x1C, 0x4C and 0x4E. This routine works on two parameters. First the door identifier:
ID Door Command lists
0x08 Boys' skool door 0x4C, 0x4E
0x10 Skool gate 0x4C, 0x4E
0x20 Drinks cabinet door 0x16, 0x18, 0x1A, 0x1C
And then the action identifier:
0 Close it
1 Open it
Input
H 0xCC (MISS TAKE) or 0xCD (ALBERT)
717C LD L,$03 Replace the address of this routine in bytes 0x03 and 0x04 of the character's buffer with 7185 (below)
717E LD (HL),$85
7180 LD L,$13 Copy the door identifier and open/close parameter from the command list into bytes 0x13 and 0x14 of the character's buffer
7182 CALL $6264
7185 LD L,$13
7187 LD A,(HL) A=door identifier
7188 CP $08 Is it the boys' skool door?
718A JR NZ,$71AD Jump if not
718C LD A,($D301) A=x-coordinate of the bike
718F CP $5E Is the bike in the boys' skool?
7191 JR C,$719F Jump if so
7193 LD DE,$1160 (E,D)=(96,17)
This entry point is used by the routine at 71AD with (E,D)=(136,17):
7196 CP E Set the carry flag if the bike is blocking the way
7197 LD A,($D300) A=bike's animatory state
719A CALL C,$6780 Move the bike to the location in DE if it's blocking the boys' skool door or the skool gate
719D LD H,$CD 0xCD=ALBERT
This entry point is used by the routine at 71AD.
719F LD L,$04 Remove the address of this routine from bytes 0x03 and 0x04 of the character's buffer
71A1 LD (HL),$00
71A3 JP $70A8 Open or close the door
Prev: 717A Up: Map Next: 71A6