Routines |
Prev: 31091 | Up: Map | Next: 31128 |
The address of this uninterruptible subcommand routine is placed into bytes 17 and 18 of a female character's buffer by the routine at 31150 when there's a mouse in the vicinity. It makes the female character either stand on a chair (if there's one beside her) or start jumping up and down.
|
||||||||
31092 | LD L,17 | Replace the address of this routine in bytes 17 and 18 of the character's buffer with that of 31078 | ||||||
31094 | LD (HL),102 | |||||||
31096 | CALL 25012 | Update the SRB for the character's current animatory state and location | ||||||
31099 | LD L,20 | Store the character's current animatory state in byte 20 of her buffer, so it can be restored when she's finished jumping | ||||||
31101 | LD (HL),A | |||||||
31102 | INC L | Initialise byte 21 to 0 on the assumption that there is no chair to stand on | ||||||
31103 | LD (HL),0 | |||||||
31105 | DEC D | Jump up | ||||||
31106 | PUSH DE | |||||||
31107 | LD L,0 | Pretend the character is facing left by resetting bit 7 of her animatory state (to make the chair check work) | ||||||
31109 | RES 7,(HL) | |||||||
31111 | CALL 26068 | Check whether this character is beside a chair | ||||||
31114 | POP DE | |||||||
31115 | LD L,21 | |||||||
31117 | AND A | Is this character standing beside a chair? | ||||||
31118 | JR NZ,31121 | Jump if not | ||||||
31120 | INC (HL) | Set byte 21 to 1 to indicate that the character is standing on a chair | ||||||
31121 | DEC L | Collect the character's original animatory state from byte 20 | ||||||
31122 | LD A,(HL) | |||||||
31123 | AND 248 | A=character's base animatory state | ||||||
31125 | JP 24880 | Update the character's animatory state and location and update the SRB |
Prev: 31091 | Up: Map | Next: 31128 |