![]() |
Routines |
| Prev: 29088 | Up: Map | Next: 29149 |
|
Continues from the routine at 29559. 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.
|
||||||||
| 29100 | LD L,31 | Pick up byte 31 of the policeman's buffer | ||||||
| 29102 | LD A,(HL) | |||||||
| 29103 | AND 63 | D=Sam's y-coordinate when he was spotted by the policeman while wearing a disguise unknown to the police | ||||||
| 29105 | LD D,A | |||||||
| 29106 | LD A,(HL) | Pick up byte 31 again | ||||||
| 29107 | LD C,4 | Initialise the destination z-coordinate to 4 | ||||||
| 29109 | AND 192 | Was Sam's z-coordinate 4 (on the sidewalk or road) when he was spotted? | ||||||
| 29111 | JR Z,29116 | Jump if so | ||||||
| 29113 | RLCA | Move bits 6 and 7 of A into bits 0 and 1 | ||||||
| 29114 | RLCA | |||||||
| 29115 | LD C,A | C=Sam's z-coordinate when he was spotted | ||||||
| 29116 | DEC L | L=30 | ||||||
| 29117 | LD E,(HL) | E=Sam's x-coordinate when he was spotted | ||||||
| 29118 | CALL 29076 | Set the policeman's destination coordinates to (E,D) | ||||||
| 29121 | CALL 29091 | Copy the destination coordinates and location identifier to 32731 | ||||||
| 29124 | LD L,29 | Point HL at byte 29 of the policeman's buffer | ||||||
|
This entry point is used by the routine at 29218.
|
||||||||
| 29126 | LD A,(HL) | Pick up byte 29 of the policeman's buffer | ||||||
| 29127 | LD (HL),0 | Set byte 29 of the policeman's buffer to 0 now that the disguise Sam was wearing is known to the police | ||||||
| 29129 | RLCA | Move bits 5-7 of A (which hold the ID of the disguise that Sam was wearing) into bits 0-2 | ||||||
| 29130 | RLCA | |||||||
| 29131 | RLCA | |||||||
| 29132 | AND 7 | Keep only bits 0-2 | ||||||
| 29134 | ADD A,160 | Now A=64, 32, 16, 8, 4, 2, or 1, with the set bit corresponding to the disguise that Sam was wearing | ||||||
| 29136 | LD D,A | |||||||
| 29137 | LD E,21 | |||||||
| 29139 | LD A,(DE) | |||||||
| 29140 | LD DE,32744 | 32744 holds the disguise status flags | ||||||
| 29143 | EX DE,HL | Set the appropriate bit at 32744, making the disguise known to the police | ||||||
| 29144 | OR (HL) | |||||||
| 29145 | LD (HL),A | |||||||
| 29146 | JP 32009 | Set the attribute bytes for Sam's current disguise in the bottom right corner of the screen | ||||||
| Prev: 29088 | Up: Map | Next: 29149 |