Prev: $26EF Up: Map Next: $2745
$270D: Make ANGELFACE hit now and then
This corresponds to $6F1E in the ZX Spectrum version.
The address of this continual subcommand routine is placed into ANGELFACE's buffer by command lists $8E, $96, $9E, $A6, $AE, $B4, $B6 and $DC.
$270D LDA $26 Pick up ANGELFACE's animatory state from $26.
$270F LSR A Is ANGELFACE midstride?
$2710 BCS $2744 Return if so.
$2712 LDA $FD Pick up the LSB of the lesson clock from $FD.
$2714 LSR A Is bit 1 set?
$2715 LSR A
$2716 BCS $2744 Return if so.
$2718 JSR $1C8E Is ANGELFACE on a staircase?
$271B BCS $2744 Return if so.
$271D JSR $0E59 Can ANGELFACE be seen by a teacher at this moment?
$2720 BCS $2744 Return if so.
ANGELFACE is not on a staircase, and there are no teachers nearby. Are there any potential victims nearby?
$2722 LDY $FB Pick up ANGELFACE's y-coordinate from $FB.
$2724 LDA $26 Pick up ANGELFACE's animatory state from $26.
$2726 ASL A Is ANGELFACE facing right?
$2727 BCS $2731 Branch if so.
$2729 LDA $FC Pick up ANGELFACE's x-coordinate from $FC.
$272B SEC Subtract 3 to get the target x-coordinate of a potential victim.
$272C SBC #$03
$272E JMP $2736 Jump forward.
$2731 LDA $FC Pick up ANGELFACE's x-coordinate from $FC.
$2733 CLC Add 3 to get the target x-coordinate of a potential victim.
$2734 ADC #$03
$2736 TAX Transfer the target x-coordinate to X.
$2737 JSR $27D2 Is there anyone at the target coordinates?
$273A BCC $2744 Return if not.
$273C LDA #$26 Place the address of the uninterruptible subcommand routine at $267A into ANGELFACE's buffer to make him throw a punch.
$273E STA $B1
$2740 LDA #$7A
$2742 STA $B0
$2744 RTS Return to the character-handling routine at $3B5E, which then has the opportunity of moving ANGELFACE midstride before he begins the punch. This is a bug.
Prev: $26EF Up: Map Next: $2745