![]() |
Routines |
| H | Character number (152-169) |
| L | 122 |
| 25303 | LD A,(HL) | Reset bits 5 and 6 of byte 122 of the character's buffer, indicating that he should no longer walk fast or slow continuously (if he was doing so) |
| 25304 | AND 159 | |
| 25306 | LD (HL),A | |
| 25307 | CALL 24972 | Get signal byte from command list |
| 25310 | LD L,101 | Place the signal byte in byte 101 of the character's buffer |
| 25312 | LD (HL),A | |
| 25313 | LD L,99 | Change the address in bytes 99 and 100 from 25303 to 25317 |
| 25315 | LD (HL),229 |
| 25317 | LD L,101 | Collect the signal byte from the character's buffer and place it in A |
| 25319 | LD A,(HL) | |
| 25320 | CALL 25374 | Has this signal been raised? |
| 25323 | JR Z,25356 | Jump if not |
| 25325 | INC L | L=102 |
| 25326 | LD A,(HL) | A=character's walkabout origin x-coordinate |
| 25327 | LD L,98 | |
| 25329 | CP (HL) | Is the character at the walkabout origin? |
| 25330 | JR NZ,25339 | Jump if not |
| 25332 | LD L,96 | Byte 96 holds the character's animatory state |
| 25334 | BIT 0,(HL) | Is the character midstride? |
| 25336 | JP Z,25256 | Jump if not (time to move on in the command list) |
| 25339 | LD L,107 | Set the character's next destination x-coordinate |
| 25341 | LD (HL),A | |
| 25342 | INC L | Initialise the counter at byte 108 to 30, which will give the character enough time to get to the destination |
| 25343 | LD (HL),30 | |
| 25345 | LD BC,25404 | Place the address of the routine at 25404 (guide character to destination) in bytes 105 and 106 of the character's buffer |
| 25348 | LD L,105 | |
| 25350 | LD (HL),C | |
| 25351 | INC L | |
| 25352 | LD (HL),B | |
| 25353 | INC L | |
| 25354 | PUSH BC | |
| 25355 | RET | Make an indirect jump to 25404 |
| 25356 | INC L | L=102 |
| 25357 | CALL 24993 | Get random number in A |
| 25360 | AND 7 | -7<=A<=0 |
| 25362 | SUB 7 | |
| 25364 | ADD A,(HL) | A=short random distance left of walkabout origin |
| 25365 | JR 25339 |