Routines

30739: Deal with ANGELFACE when he is hitting


The address of this routine is placed into bytes 17 and 18 of ANGELFACE's buffer by the routine at 30706 to make him hit someone

H 207 (ANGELFACE)

30739 CDB461 CALL 25012 Update SRB for ANGELFACE's current animatory state and location
30742 2E14 LD L,20 Store ANGELFACE's current animatory state in byte 20 temporarily
30744 77 LD (HL),A
30745 E6F0 AND 240
30747 C608 ADD A,8 A=40 or 168: ANGELFACE raising arm
30749 CD4677 CALL 30534 Update SRB and hand over control to 30752 below

This entry point is used by the routine at 24263 to check whether ERIC has hit anyone:
30752 0602 LD B,2
30754 CDC877 CALL 30664 Was anyone hit?
30757 3813 JR C,30778 Jump if not
30759 CD2375 CALL 29987 Knock the punched character over
30762 EB EX DE,HL
30763 7C LD A,H
30764 FED2 CP 210 Did ERIC knock someone over?
30766 200A JR NZ,30778 Jump if not
30768 7A LD A,D
30769 FECF CP 207 Did ERIC knock ANGELFACE over?
30771 2005 JR NZ,30778 Jump if not
30773 3E03 LD A,3 ERIC has punched ANGELFACE down. Add 30 to the score and print it
30775 CDB573 CALL 29621
30778 CDB461 CALL 25012 Update SRB for punching character's current animatory state
30781 3C INC A A=animatory state of punching character with fist fully raised
30782 C3B777 JP 30647 Update SRB then lower character's arm