![]() |
Routines |
Prev: 25266 | Up: Map | Next: 25367 |
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 | Collect the signal byte from the 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 of the character's buffer from 25303 to 25317 (below) |
25315 | LD (HL),229 | |
This entry point is used by the routines at 27442 and 27453.
|
||
25317 | LD L,101 | Collect the signal byte from byte 101 of the character's buffer |
25319 | LD A,(HL) | |
25320 | CALL 25374 | Has this signal been raised? |
25323 | JR Z,25356 | Jump if not |
The time has come to stop moving about. However, before we move on in the command list, the character needs to return to the walkabout origin.
|
||
25325 | INC L | Collect the x-coordinate of the walkabout origin from byte 102 of the character's buffer |
25326 | LD A,(HL) | |
25327 | LD L,98 | Byte 98 holds the character's x-coordinate |
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) into 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 |
The signal has not been raised yet, so it's time for another mini-walkabout.
|
||
25356 | INC L | Point HL at the x-coordinate of the walkabout origin |
25357 | CALL 24993 | A=random number |
25360 | AND 7 | -7<=A<=0 |
25362 | SUB 7 | |
25364 | ADD A,(HL) | Add the x-coordinate of the walkabout origin |
25365 | JR 25339 | Make this the new walkabout destination |
Prev: 25266 | Up: Map | Next: 25367 |