Skool Daze Routines
28446: Make ANGELFACE hit now and then
The address of this routine is placed in ANGELFACE's buffer by command lists 142, 150, 158, 166, 174, 180 and 182.
H 168 (ANGELFACE's character number)
28446 LD L,112 Return now if there is a routine address in bytes 111 and 112 of ANGELFACE's buffer
28448 LD A,(HL)
28449 AND A
28450 RET NZ
28451 LD L,96 Byte 96 holds ANGELFACE's animatory state
28453 BIT 0,(HL) Is ANGELFACE midstride?
28455 RET NZ Return if so
28456 INC L Byte 97 holds ANGELFACE's y-coordinate
28457 LD A,(HL) Pick this up in A
28458 CALL 26185 Is ANGELFACE on a staircase?
28461 RET NZ Return if so
28462 CALL 28220 Can any teachers see ANGELFACE?
28465 RET C Return if so
28466 LD L,98 Byte 98 holds ANGELFACE's x-coordinate
28468 LD A,(HL) Pick this up in A
28469 DEC L Pick up ANGELFACE's y-coordinate in D
28470 LD D,(HL)
28471 DEC L Byte 96 holds ANGELFACE's animatory state
28472 SUB 3 Set A equal to the "target" x-coordinate (i.e. where a character would have to be in order to receive ANGELFACE's punch)
28474 BIT 7,(HL)
28476 JR Z,28480
28478 ADD A,6
28480 LD E,A Place the target x-coordinate in E
28481 LD C,(HL) C=ANGELFACE's animatory state
28482 LD H,172 172=ERIC
28484 CALL 28416 Is ERIC a potential target?
28487 JR NC,28502 Jump if not
28489 NOP
28490 POP HL
28491 LD HL,43121 Point HL at byte 113 of ANGELFACE's buffer
28494 LD (HL),C Store his current animatory state there
28495 DEC L Place the address of the routine at 28544 in bytes 111 and 112 of ANGELFACE's buffer
28496 LD (HL),111
28498 DEC L
28499 LD (HL),128
28501 RET
ERIC is not a potential target for ANGELFACE's fist. What about the other main kids?
28502 LD H,169 169=EINSTEIN
28504 LD B,3 There are three main kids
28506 CALL 28416 Is this main kid a potential target?
28509 JR NC,28513 Jump if not
28511 JR 28490 Jump back to hand over control to 28544 otherwise
28513 DEC H Next main kid
28514 DJNZ 28506 Jump back until the three main kids have been checked
EINSTEIN and BOY WANDER weren't potential targets either. What about the little boys?
28516 LD H,152 152=little boy no. 1
28518 LD B,7 We check only the first seven little boys - interesting!
28520 CALL 28416 Is this little boy a potential target?
28523 JR NC,28527 Jump if not
28525 JR 28490 Jump back to hand over control to 28544 otherwise
28527 INC H Next little boy
28528 DJNZ 28520 Jump back until the seven little boys have been checked
28530 LD H,168 168=ANGELFACE
28532 RET