![]() |
Routines |
| Prev: 7973 | Up: Map | Next: 7998 |
|
The address of this uninterruptible subcommand routine is placed into bytes 0x11 and 0x12 of a female character's buffer by the routine at 79AE 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.
|
||||||||
| 7974 | LD L,$11 | Replace the address of this routine in bytes 0x11 and 0x12 of the character's buffer with that of 7966 | ||||||
| 7976 | LD (HL),$66 | |||||||
| 7978 | CALL $61B4 | Update the SRB for the character's current animatory state and location | ||||||
| 797B | LD L,$14 | Store the character's current animatory state in byte 0x14 of her buffer, so it can be restored when she's finished jumping | ||||||
| 797D | LD (HL),A | |||||||
| 797E | INC L | Initialise byte 0x15 to 0 on the assumption that there is no chair to stand on | ||||||
| 797F | LD (HL),$00 | |||||||
| 7981 | DEC D | Jump up | ||||||
| 7982 | PUSH DE | |||||||
| 7983 | LD L,$00 | Pretend the character is facing left by resetting bit 7 of her animatory state (to make the chair check work) | ||||||
| 7985 | RES 7,(HL) | |||||||
| 7987 | CALL $65D4 | Check whether this character is beside a chair | ||||||
| 798A | POP DE | |||||||
| 798B | LD L,$15 | |||||||
| 798D | AND A | Is this character standing beside a chair? | ||||||
| 798E | JR NZ,$7991 | Jump if not | ||||||
| 7990 | INC (HL) | Set byte 0x15 to 1 to indicate that the character is standing on a chair | ||||||
| 7991 | DEC L | Collect the character's original animatory state from byte 0x14 | ||||||
| 7992 | LD A,(HL) | |||||||
| 7993 | AND $F8 | A=character's base animatory state | ||||||
| 7995 | JP $6130 | Update the character's animatory state and location and update the SRB | ||||||
| Prev: 7973 | Up: Map | Next: 7998 |