Routines |
Prev: 981F | Up: Map | Next: 994E |
Used by the routine at 981F.
|
||||
98AF | LD DE,$000A | Set DE to the points obtained | ||
98B2 | CALL $9A27 | Increment score | ||
98B5 | CALL $CE67 | Recompute boss health | ||
98B8 | LD (IX+$12),$01 | Set boss type semidestroyed - boss speed 1 | ||
98BC | LD A,$0F | |||
98BE | LD ($A092),A | |||
98C1 | LD HL,$92F2 | Set address for semidestroyed boss graphic data | ||
98C4 | LD (IX+$04),L | |||
98C7 | LD (IX+$05),H | |||
98CA | LD A,(IX+$00) | Set A093 the x-position of Boss | ||
98CD | LD ($A093),A | |||
98D0 | LD A,(IX+$01) | Set A095 the y-position of Boss | ||
98D3 | LD ($A095),A | |||
98D6 | LD A,(IX+$13) | Set A097 the boss status | ||
98D9 | LD ($A097),A | |||
98DC | INC (IX+$13) | Incremetnt boss status | ||
98DF | LD A,(IX+$13) | if boss status equals $02? | ||
98E2 | CP $02 | |||
98E4 | JP NZ,$990A | Jump forward if not and explode | ||
convert Boss to an escape Pod
|
||||
98E7 | CALL $CDA2 | Configure escape pod | ||
98EA | LD (IX+$16),E | Set address for graphic data | ||
98ED | LD (IX+$17),D | |||
98F0 | LD (IX+$15),$00 | Set bubble type | ||
98F4 | LD (IX+$0A),L | Set address for the offset animation table | ||
98F7 | LD (IX+$0B),H | |||
98FA | LD (IX+$0E),$03 | Set width of sprite | ||
98FE | LD (IX+$0F),$10 | Set height of sprite | ||
9902 | LD (IX+$09),$0C | Set enemy type (POD) | ||
9906 | LD (IX+$14),$08 | Set health for enemy | ||
generate explosions
|
||||
990A | PUSH IX | Save IX | ||
990C | LD B,$05 | Set B to the number of explosions to generate | ||
990E | PUSH BC | Save BC | ||
990F | CALL $D858 | Check for an avaliable slot into Enemy configuration buffer to configure the explosion | ||
9912 | CALL $97FD | Configure explosion | ||
9915 | CALL $A375 | Set random bubble type | ||
9918 | AND $01 | |||
991A | LD (IX+$15),A | |||
991D | LD A,($A097) | check Boss status | ||
9920 | OR A | |||
9921 | JP NZ,$9928 | Jump forward if Boss was wounded | ||
9924 | LD (IX+$15),$FF | Set to no bubble if Boss was in good health | ||
9928 | LD (IX+$0C),$01 | Set explosion visible | ||
992C | CALL $A375 | Set A to a random number between $00-$1F | ||
992F | AND $1F | |||
9931 | LD L,A | Set x-position of explosion based on x-position of Boss and random generated number | ||
9932 | LD A,($A093) | |||
9935 | ADD A,L | |||
9936 | LD (IX+$00),A | |||
9939 | CALL $A375 | Set A to a random number between $00-$1F | ||
993C | AND $1F | |||
993E | LD L,A | Set y-position of explosion based on y-position of Boss and random generated number | ||
993F | LD A,($A095) | |||
9942 | ADD A,L | |||
9943 | AND $F8 | |||
9945 | LD (IX+$01),A | |||
9948 | POP BC | Restore BC | ||
9949 | DJNZ $990E | Jump back and configure new explosion | ||
994B | POP IX | Restore IX | ||
994D | RET |
Prev: 981F | Up: Map | Next: 994E |