![]() |
Routines |
Prev: 29278 | Up: Map | Next: 29567 |
29462 | LD HL,32755 | 32755 holds ERIC's main action timer |
29465 | DEC (HL) | Is it time to deal with ERIC yet? |
29466 | RET NZ | Return if not |
29467 | 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 |
29468 | CALL 29178 | A=value from the keypress offset table corresponding to the key just pressed (if any) |
29471 | RET Z | Return if no game key was pressed |
29472 | LD HL,32755 | 32755 holds ERIC's main action timer |
29475 | CP 114 | Was 'jump' pressed? |
29477 | JR Z,29517 | Jump if so |
29479 | SET 3,A | Ignore the difference between fast (upper case) and slow (lower case) keys when ERIC's on the bike |
29481 | CP 92 | Was 'up' pressed? |
29483 | JR Z,29517 | Jump if so |
29485 | CP 94 | Was 'down' pressed? |
29487 | RET NZ | Return if not |
This entry point is used by the routine at 29574 when ERIC has just got on the bike.
|
||
29488 | LD (HL),5 | Reset ERIC's main action timer at 32755 to 5 |
29490 | LD L,237 | HL=32749 (ERIC's status flags) |
29492 | LD (HL),1 | Set bit 0: ERIC is riding the bike |
29494 | LD H,210 | 210=ERIC |
29496 | CALL 25012 | Update the SRB for ERIC's current animatory state and location |
29499 | INC H | H=211: bike |
29500 | CALL 25012 | Update the SRB for the bike's current animatory state and location |
29503 | LD L,1 | Point HL at byte 1 of the bike's buffer |
29505 | LD (HL),224 | Set the bike's x-coordinate to 224 (out of sight) |
29507 | LD L,18 | Remove the address of the routine at 29194 from bytes 17 and 18 of the bike's buffer |
29509 | LD (HL),0 | |
29511 | DEC H | H=210: ERIC |
29512 | SUB 12 | A=animatory state of ERIC riding the bike |
29514 | JP 24880 | 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.
|
||
29517 | LD H,210 | 210=ERIC |
29519 | CALL 25012 | Update the SRB for ERIC's current animatory state and location |
29522 | ADD A,2 | A=2 or 130 |
29524 | DEC D | Set D to the y-coordinate of the spot above ERIC's hand as he jumps from the saddle |
29525 | DEC D | |
29526 | CALL 64474 | Prepare ERIC for his descent from the bike saddle |
29529 | LD H,210 | 210=ERIC |
29531 | XOR A | |
29532 | LD L,A | Point HL at byte 0 of ERIC's buffer |
29533 | BIT 7,(HL) | Is ERIC facing left? |
29535 | JR Z,29539 | Jump if so |
29537 | LD A,2 | |
29539 | INC L | Point HL at byte 1 of ERIC's buffer |
29540 | ADD A,(HL) | A=x-coordinate of ERIC's hand |
29541 | LD E,A | Now DE=coordinates of the spot above ERIC's hand |
29542 | LD HL,32747 | 32747 holds the inventory flags |
29545 | BIT 2,(HL) | Has ERIC got the frog? |
29547 | RET Z | Return if not |
29548 | CALL 30216 | Is ERIC's arm directly underneath a cup? |
29551 | RET NZ | Return if not |
29552 | RES 2,(HL) | Signal: ERIC no longer has the frog |
29554 | LD H,212 | 212=frog |
29556 | LD A,28 | 28: frog sitting (as on the floor or in a cup) |
29558 | DEC E | Set DE to the frog's new in-cup coordinates |
29559 | LD D,11 | |
29561 | CALL 24880 | Update the frog's animatory state and location and update the SRB |
29564 | JP 62401 | Print the inventory and make a celebratory sound effect |
Prev: 29278 | Up: Map | Next: 29567 |