Prev: D7D8 Up: Map Next: D80C
D7ED: The update routine for an antibody in flight (graphics 80-95)
An antibody thrown by the knight (KNIGHT_THROWS) flies straight on at speed 12, moving twice a turn, and vanishes at the first wall. It does not look for its targets: the monsters' own routines test for an antibody touching them (MONSTER112_UPDATE, WANDERING_MONSTER, CREATURE_UPDATE). Its four frames animate through the low two bits of the graphic.
The second move is made from MOVE_CLIPPED's second entry, which does not clear the wall flag, so a wall met on the first move still ends it.
Input
IX The antibody's record (ANTIBODIES)
ANTIBODY_FLIGHT D7ED LD A,(IX+$05) The step from the speed and the facing
D7F0 CALL SET_STEP
D7F3 CALL NEXT_FRAME_MOD4 Next frame
D7F6 CALL MOVE_CLIPPED Move, trimmed at a wall...
D7F9 CALL APPLY_STEP
D7FC CALL MOVE_CLIPPED_AGAIN ...and again, keeping the wall flag
D7FF CALL APPLY_STEP
D802 BIT 0,(IX+$07) Done unless it met a wall...
D806 RET Z
D807 LD (IX+$00),$0C ...where it vanishes
D80B RET
Prev: D7D8 Up: Map Next: D80C