Routines |
Prev: 71A0 | Up: Map | Next: 71DD |
Continues from the routine at 7377. The policeman recently spotted Sam while he was wearing a disguise unknown to the police; this routine sends that policeman back to where he first spotted Sam when the disguise becomes known.
|
||||||||
71AC | LD L,$1F | Pick up byte 0x1F of the policeman's buffer | ||||||
71AE | LD A,(HL) | |||||||
71AF | AND $3F | D=Sam's y-coordinate when he was spotted by the policeman while wearing a disguise unknown to the police | ||||||
71B1 | LD D,A | |||||||
71B2 | LD A,(HL) | Pick up byte 0x1F again | ||||||
71B3 | LD C,$04 | Initialise the destination z-coordinate to 4 | ||||||
71B5 | AND $C0 | Was Sam's z-coordinate 4 (on the sidewalk or road) when he was spotted? | ||||||
71B7 | JR Z,$71BC | Jump if so | ||||||
71B9 | RLCA | Move bits 6 and 7 of A into bits 0 and 1 | ||||||
71BA | RLCA | |||||||
71BB | LD C,A | C=Sam's z-coordinate when he was spotted | ||||||
71BC | DEC L | L=0x1E | ||||||
71BD | LD E,(HL) | E=Sam's x-coordinate when he was spotted | ||||||
71BE | CALL $7194 | Set the policeman's destination coordinates to (E,D) | ||||||
71C1 | CALL $71A3 | Copy the destination coordinates and location identifier to 7FDB | ||||||
71C4 | LD L,$1D | Point HL at byte 0x1D of the policeman's buffer | ||||||
This entry point is used by the routine at 7222.
|
||||||||
71C6 | LD A,(HL) | Pick up byte 0x1D of the policeman's buffer | ||||||
71C7 | LD (HL),$00 | Set byte 0x1D of the policeman's buffer to 0 now that the disguise Sam was wearing is known to the police | ||||||
71C9 | RLCA | Move bits 5-7 of A (which hold the ID of the disguise that Sam was wearing) into bits 0-2 | ||||||
71CA | RLCA | |||||||
71CB | RLCA | |||||||
71CC | AND $07 | Keep only bits 0-2 | ||||||
71CE | ADD A,$A0 | Now A=0x40, 0x20, 0x10, 0x08, 0x04, 0x02, or 0x01, with the set bit corresponding to the disguise that Sam was wearing | ||||||
71D0 | LD D,A | |||||||
71D1 | LD E,$15 | |||||||
71D3 | LD A,(DE) | |||||||
71D4 | LD DE,$7FE8 | 7FE8 holds the disguise status flags | ||||||
71D7 | EX DE,HL | Set the appropriate bit at 7FE8, making the disguise known to the police | ||||||
71D8 | OR (HL) | |||||||
71D9 | LD (HL),A | |||||||
71DA | JP $7D09 | Set the attribute bytes for Sam's current disguise in the bottom right corner of the screen |
Prev: 71A0 | Up: Map | Next: 71DD |