![]() |
Routines |
Prev: 27748 | Up: Map | Next: 27798 |
The address of this uninterruptible subcommand routine is placed into bytes 111 and 112 of a character's buffer by the routine at 27748 (after he's been knocked out of his chair and just got up to look for another one - or the same one, in EINSTEIN's case), or by the routine at 27808.
|
||||
27772 | CALL 25108 | Update the SRB for the character's current location | ||
27775 | LD C,A | Store the character's animatory state in C temporarily | ||
27776 | BIT 0,A | Is the character midstride? | ||
27778 | JP NZ,25434 | Finish the stride if so | ||
27781 | CALL 27632 | Is the character standing beside a chair? | ||
27784 | JP Z,27517 | If so, knock the current occupant (if any) to the floor, make this character sit down, and remove the address of this routine from bytes 111 and 112 of his buffer | ||
27787 | LD A,C | Restore the character's animatory state to A | ||
27788 | NOP | |||
27789 | JR NC,27794 | Jump unless the character should turn round | ||
27791 | XOR 128 | Flip bit 7 of the animatory state, thus turning him round | ||
27793 | DEC A | Compensate for the 'INC A' below | ||
27794 | INC A | A=character's new animatory state (midstride, or just turned round) | ||
27795 | JP 25008 | Update the character's animatory state and update the SRB |
Prev: 27748 | Up: Map | Next: 27798 |