![]() |
Routines |
| Prev: 725E | Up: Map | Next: 737F |
| 7316 | LD HL,$7FF3 | 7FF3 holds ERIC's main action timer | ||
| 7319 | DEC (HL) | Is it time to deal with ERIC yet? | ||
| 731A | RET NZ | Return if not | ||
| 731B | INC (HL) | Set ERIC's action timer to 1, ensuring that we pass through the following section of code on the next call to this routine if no keypress is detected this time | ||
| 731C | CALL $71FA | A=value from the keypress offset table corresponding to the key just pressed (if any) | ||
| 731F | RET Z | Return if no game key was pressed | ||
| 7320 | LD HL,$7FF3 | 7FF3 holds ERIC's main action timer | ||
| 7323 | CP $72 | Was 'jump' pressed? | ||
| 7325 | JR Z,$734D | Jump if so | ||
| 7327 | SET 3,A | Ignore the difference between fast (upper case) and slow (lower case) keys when ERIC's on the bike | ||
| 7329 | CP $5C | Was 'up' pressed? | ||
| 732B | JR Z,$734D | Jump if so | ||
| 732D | CP $5E | Was 'down' pressed? | ||
| 732F | RET NZ | Return if not | ||
|
This entry point is used by the routine at 7386 when ERIC has just got on the bike.
|
||||
| 7330 | LD (HL),$05 | Reset ERIC's main action timer at 7FF3 to 5 | ||
| 7332 | LD L,$ED | HL=7FED (ERIC's status flags) | ||
| 7334 | LD (HL),$01 | Set bit 0: ERIC is riding the bike | ||
| 7336 | LD H,$D2 | 0xD2=ERIC | ||
| 7338 | CALL $61B4 | Update the SRB for ERIC's current animatory state and location | ||
| 733B | INC H | H=0xD3: bike | ||
| 733C | CALL $61B4 | Update the SRB for the bike's current animatory state and location | ||
| 733F | LD L,$01 | Point HL at byte 0x01 of the bike's buffer | ||
| 7341 | LD (HL),$E0 | Set the bike's x-coordinate to 224 (out of sight) | ||
| 7343 | LD L,$12 | Remove the address of the routine at 720A from bytes 0x11 and 0x12 of the bike's buffer | ||
| 7345 | LD (HL),$00 | |||
| 7347 | DEC H | H=0xD2: ERIC | ||
| 7348 | SUB $0C | A=animatory state of ERIC riding the bike | ||
| 734A | JP $6130 | Update ERIC's animatory state and update the SRB | ||
|
ERIC has tried to jump off the saddle of the bike. Check whether he has the frog and is underneath a cup.
|
||||
| 734D | LD H,$D2 | 0xD2=ERIC | ||
| 734F | CALL $61B4 | Update the SRB for ERIC's current animatory state and location | ||
| 7352 | ADD A,$02 | A=0x02 or 0x82 | ||
| 7354 | DEC D | Set D to the y-coordinate of the spot above ERIC's hand as he jumps from the saddle | ||
| 7355 | DEC D | |||
| 7356 | CALL $FBDA | Prepare ERIC for his descent from the bike saddle | ||
| 7359 | LD H,$D2 | 0xD2=ERIC | ||
| 735B | XOR A | |||
| 735C | LD L,A | Point HL at byte 0x00 of ERIC's buffer | ||
| 735D | BIT 7,(HL) | Is ERIC facing left? | ||
| 735F | JR Z,$7363 | Jump if so | ||
| 7361 | LD A,$02 | |||
| 7363 | INC L | Point HL at byte 0x01 of ERIC's buffer | ||
| 7364 | ADD A,(HL) | A=x-coordinate of ERIC's hand | ||
| 7365 | LD E,A | Now DE=coordinates of the spot above ERIC's hand | ||
| 7366 | LD HL,$7FEB | 7FEB holds the inventory flags | ||
| 7369 | BIT 2,(HL) | Has ERIC got the frog? | ||
| 736B | RET Z | Return if not | ||
| 736C | CALL $7608 | Is ERIC's arm directly underneath a cup? | ||
| 736F | RET NZ | Return if not | ||
| 7370 | RES 2,(HL) | Signal: ERIC no longer has the frog | ||
| 7372 | LD H,$D4 | 0xD4=frog | ||
| 7374 | LD A,$1C | 0x1C: frog sitting (as on the floor or in a cup) | ||
| 7376 | DEC E | Set DE to the frog's new in-cup coordinates | ||
| 7377 | LD D,$0B | |||
| 7379 | CALL $6130 | Update the frog's animatory state and location and update the SRB | ||
| 737C | JP $F3C1 | Print the inventory and make a celebratory sound effect | ||
| Prev: 725E | Up: Map | Next: 737F |