Prev: F633 Up: Map Next: F68D
F63C: Update and draw bombs for the Arcade room.
Used by the routines at Update_Room00 and Invaders_Loop.
Input
Output
Arcade_UpdateBombs F63C LD IX,Arcade_BombData Start of bomb data.
F640 LD B,$03 Number of bombs on screen at any one time.
Arcade_UpdateBombs_0 F642 LD A,(IX+$00) See if next bomb slot is empty.
F645 CP $FF
F647 JR NZ,Arcade_UpdateBombs_1
F649 INC IX If it is, skip it.
F64B INC IX
F64D INC IX
F64F JR Arcade_UpdateBombs_3
Arcade_UpdateBombs_1 F651 LD L,(IX+$00) X pos.
F654 LD H,(IX+$01) Y pos.
F657 LD C,(IX+$02) Bitmap index.
F65A INC IX
F65C INC IX
F65E INC IX
F660 LD A,C Erase bomb.
F661 LD (BitmapX),HL
F664 CALL Bitmap16Draw
F667 INC H Move down screen.
F668 INC H
F669 LD A,H See of bomb has hit bottom of screen.
F66A CP $A8
F66C JR C,Arcade_UpdateBombs_2
F66E LD (IX-$03),$FF If it has, remove it from game.
F672 DEC H
F673 DEC H
F674 CALL Arcade_CreateExplosions
F677 JR Arcade_UpdateBombs_3
Arcade_UpdateBombs_2 F679 LD (IX-$02),H Update position and draw.
F67C LD (BitmapX),HL
F67F LD A,C
F680 CALL Bitmap16Draw
F683 PUSH BC
F684 LD B,$02 Check for hitting Wally.
F686 CALL Wally_HitTest
F689 POP BC
Arcade_UpdateBombs_3 F68A DJNZ Arcade_UpdateBombs_0 Next bomb.
F68C RET
Prev: F633 Up: Map Next: F68D