Routines
 Prev: F400 Up: Map Next: F46B
F41F: Deal with ERIC when he's firing the catapult
 Used by the routine at 6AD9 when bit 0 of ERIC's status flags at 7FFB is set (by the routine at F46E). F41F LD HL,\$7FF6 7FF6 holds the catapult-firing action timer (initially 0x18) F422 DEC (HL) Has ERIC finished firing the catapult? F423 JR NZ,\$F434 Jump if not This entry point is used by the routines at F4A4 and F533 to restore ERIC's animatory state to what it was before he jumped or threw a punch. F425 XOR A Clear all of ERIC's status flags at 7FFB F426 LD (\$7FFB),A F429 LD H,\$AC 0xAC=ERIC F42B CALL \$6214 Update the SRB for ERIC's current animatory state F42E LD L,\$66 Restore ERIC's animatory state to what it was before he fired the catapult, jumped, or threw the punch F430 LD A,(HL) F431 JP \$61B0 Update ERIC's animatory state and location and update the SRB ERIC hasn't finished firing the catapult. Check which phase of the firing action we're at. F434 LD A,(HL) Pick up the current value of the action timer in A F435 LD H,\$AC 0xAC=ERIC F437 CP \$12 Is it time to raise the catapult to eye level? F439 JP Z,\$7041 Jump if so F43C CP \$06 Is it time to start lowering the catapult? F43E JP Z,\$706B Jump if so F441 CP \$0C Is it time to launch the pellet? F443 RET NZ Return if not It's time to launch the catapult pellet. F444 LD L,\$60 Byte 0x60 of ERIC's buffer holds his animatory state F446 LD A,(HL) Pick this up in A F447 OR \$7F A=0x7F or 0xFF (catapult pellet) F449 INC L Pick up ERIC's coordinates in DE; they will be the initial coordinates of the catapult pellet F44A LD D,(HL) F44B INC L F44C LD E,(HL) F44D DEC H H=0xAB (ERIC's catapult pellet) F44E CALL \$7057 Launch the catapult pellet F451 CALL \$FE75 Play the catapult sound effect F454 LD B,\$0D Reprimand message 0x0D: CATAPULTS ARE FORBIDDEN This entry point is used by the routines at F4A4 (with B=0x0E: DON'T HIT YOUR MATES) and F533 (with B=0x0F: YOU ARE NOT A KANGAROO). F456 LD H,\$AC 0xAC=ERIC F458 PUSH BC Save the reprimand message identifier F459 CALL \$6E3C Check whether any teachers saw ERIC throw a punch, fire his catapult, or jump F45C POP BC Restore the reprimand message identifier to B F45D RET NC Return if ERIC wasn't seen by a teacher F45E EXX F45F LD L,\$61 Byte 0x61 of the teacher's buffer holds his y-coordinate F461 LD D,(HL) Pick up the coordinates of the teacher who saw ERIC in DE' F462 INC L F463 LD E,(HL) F464 PUSH DE F465 EXX F466 POP DE Now DE holds the coordinates of the teacher who saw ERIC F467 LD A,H A=0xAC (ERIC) F468 JP \$7700 Make the teacher give ERIC lines
 Prev: F400 Up: Map Next: F46B