![]() |
Routines |
Prev: 29100 | Up: Map |
|
|||||||||
29149 | XOR A | 32666 holds the ID of the telephone that Sam is calling; set this to 0, effectively making Sam hang up | |||||||
29150 | LD (32666),A | ||||||||
29153 | LD L,0 | Point HL at byte 0 of the character's buffer | |||||||
29155 | LD A,(HL) | A=character's animatory state | |||||||
29156 | AND 112 | Discard bits 0-3 and 7 | |||||||
29158 | SUB 16 | 16: Is this character a policeman? | |||||||
29160 | JR NZ,29165 | Jump if not | |||||||
29162 | LD (32747),A | Clear all flags at 32747 (Sam is no longer wanted by the police, because he's just been arrested) | |||||||
29165 | LD A,1 | Set bit 0 of Sam's status flags at 32764, indicating that he's being carried | |||||||
29167 | LD (32764),A | ||||||||
29170 | BIT 0,(HL) | Is the character midstride? | |||||||
29172 | CALL NZ,60506 | If so, move the character from the midstride position and update the SRB | |||||||
29175 | CALL 59848 | Update the SRB for the character's current animatory state and location | |||||||
29178 | ADD A,8 | A=animatory state of the character while carrying Sam | |||||||
29180 | CALL 59861 | Update the character's animatory state and location and update the SRB | |||||||
29183 | LD L,9 | Remove the address of the primary command routine from bytes 8 and 9 of the character's buffer, thus moving to the next command in the command list | |||||||
29185 | LD (HL),0 | ||||||||
29187 | LD HL,1 | Set Sam's main action timer (in byte 8 of his buffer) to 1, and his midstride/mid-action timer (in byte 9) to 0 | |||||||
29190 | LD (58888),HL | ||||||||
29193 | RET |
Prev: 29100 | Up: Map |