Prev: 8E9B Up: Map Next: 8F31
8EDD: Animate Monty's angel as he has died
Used by the routine at 8F9F.
8EDD LD A,($9179) Increase the frame number between 0 and 3.
8EE0 INC A
8EE1 AND $03
8EE3 LD ($9179),A
8EE6 OR A Is the frame zero?
8EE7 JP NZ,$9048 Exit if so.
8EEA LD HL,$5C7C Get the current Y co-ordinate.
8EED INC (HL) Move up two rows.
8EEE INC (HL)
8EEF LD A,$BE Has the angel reached the top of the screen?
8EF1 CP (HL)
8EF2 JR NC,$8F12 Move forward if not.
The angel has now reached the top of the screen.
8EF4 LD HL,$7780 7780 is the empty graphic.
8EF7 LD ($ECE0),HL Store the graphic to draw.
8EFA LD HL,($5C7B) Get the player's position.
8EFD LD ($ECDE),HL
8F00 CALL $EBE0 Draw (erase) the graphic.
8F03 LD HL,$8D53 Get the game flags.
8F06 RES 1,(HL) Reset flag 1 (Monty in mid-air).
8F08 SET 0,(HL) Set flag 0 (nasties can move)
8F0A LD A,$FF Set the frame to FF denoting "not used"
8F0C LD ($9179),A
8F0F JP $9048 Exit to restore all registers.
The angel needs redrawing.
8F12 LD HL,($9177) Move the current position up a row.
8F15 LD DE,$0020
8F18 ADD HL,DE
8F19 RES 7,L
8F1B LD ($9177),HL
8F1E LD DE,$FF60 Move back to get an appropriate screen address.
8F21 ADD HL,DE
8F22 LD ($ECE0),HL Set this as the graphic to print.
8F25 LD HL,($5C7B) Set the current position as the position to draw.
8F28 LD ($ECDE),HL
8F2B CALL $EBE0 Draw the graphic.
8F2E JP $9048 Exit to restore all registers.
Prev: 8E9B Up: Map Next: 8F31