Routines

30664: Check if any characters were hit by ERIC's or ANGELFACE's fist


Used by routines at 30706 and 30739

B 2 (30739) or 3 (30706)
H 207 (ANGELFACE) or 210 (ERIC)

30664 2E00 LD L,0
30666 CB7E BIT 7,(HL)
30668 2E01 LD L,1
30670 4E LD C,(HL) C=punching character's x-coordinate
30671 C5 PUSH BC Save this x-coordinate for now
30672 78 LD A,B
30673 2002 JR NZ,30677
30675 ED44 NEG
30677 86 ADD A,(HL) A=x-coordinate of puncher's fist
30678 77 LD (HL),A
30679 2D DEC L
30680 7E LD A,(HL) A=punching character's animatory state
30681 2F CPL
30682 E680 AND 128 A=0 if character's facing right, 128 if left
30684 4F LD C,A
30685 16CE LD D,206 206=BOY WANDER
30687 0605 LD B,5 There are 5 main kids who can be hit
30689 CD9C6C CALL 27804 Were any of them hit?
30692 3007 JR NC,30701 Jump if so
30694 16B7 LD D,183 183=little girl no. 1
30696 0611 LD B,17 There are 17 little kids (10 boys, 7 girls) who can be hit
30698 CD9C6C CALL 27804 Were any of them hit?
30701 C1 POP BC Restore the punching character's x-coordinate in C
30702 2E01 LD L,1
30704 71 LD (HL),C Place it back in byte 1 of the character's buffer
30705 C9 RET Return with the carry reset if someone was hit, and D holding number of punched character