Routines |
Prev: 29100 | Up: Map | Next: 29194 |
|
||||||||
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 | Next: 29194 |