Routines |
Prev: 97FD | Up: Map | Next: 98AF |
981F | LD HL,$E9FF | Set A039 the base address for attribute buffer pointing to score points | ||
9822 | LD ($A039),HL | |||
9825 | LD HL,$0000 | Set A03C the score points for enemy dying | ||
9828 | LD ($A03C),HL | |||
982B | LD A,(IX+$09) | Check enemy type | ||
982E | CP $90 | is Boss? | ||
9830 | JP Z,$98AF | Jump to handle Boss destruction | ||
9833 | LD A,(IX+$01) | Return if y-position of enemy is greater than $B0 | ||
9836 | CP $B0 | |||
9838 | RET NC | |||
9839 | CP $10 | Return if y-position of enemy is less than $10 | ||
983B | RET C | |||
983C | LD A,(IX+$09) | Check enemy type | ||
983F | CP $05 | is front train? | ||
9841 | CALL Z,$9968 | Jump to handle train destruction | ||
9844 | LD HL,$81B2 | Set base address for explosion graphic data | ||
9847 | LD (IX+$04),L | |||
984A | LD (IX+$05),H | |||
984D | LD (IX+$0D),$08 | Set explosion counter | ||
9851 | LD (IX+$0F),$18 | Set height of explosion | ||
9855 | LD (IX+$0E),$03 | Set width of explosion | ||
9859 | LD A,(IX+$09) | Check enemy | ||
985C | OR A | is FOOT MAN? | ||
985D | CALL Z,$98A7 | Jump to increment enemy dead count | ||
9860 | CP $07 | is FOOT MAN dying? | ||
9862 | CALL Z,$98A7 | Jump to increment enemy dead count | ||
9865 | CP $06 | is FOOT MAN crouched/dying? | ||
9867 | CALL Z,$98A7 | Jump to increment enemy dead count | ||
986A | CP $0C | is Pod? | ||
986C | CALL Z,$98A7 | Jump to increment enemy dead count | ||
986F | CP $04 | is rear train? | ||
9871 | CALL Z,$98A7 | Jump to increment enemy dead count | ||
9874 | CP $05 | is front train? | ||
9876 | CALL Z,$98A7 | Jump to increment enemy dead count | ||
9879 | AND $0F | Set into HL to the address into the enemy points table | ||
987B | LD E,A | |||
987C | LD D,$00 | |||
987E | LD HL,$994E | |||
9881 | ADD HL,DE | |||
9882 | LD E,(HL) | Set DE to the points obtained | ||
9883 | LD D,$00 | |||
9885 | LD A,E | Check number of points | ||
9886 | OR A | |||
9887 | CALL NZ,$9A27 | if points greater than 0 then increment score | ||
988A | LD DE,$D790 | Set address for explosion sound | ||
988D | CALL $D5E7 | Configure sound channel and mixer register | ||
9890 | LD (IX+$09),$FF | Set entity type explosion | ||
9894 | LD (IX+$02),$00 | Reset sprite direction | ||
9898 | LD A,(IX+$01) | Set explosion y-position (fixed grid) | ||
989B | SUB $08 | |||
989D | AND $F8 | |||
989F | LD (IX+$01),A | |||
98A2 | LD (IX+$03),$00 | Reset explosion debris expansion counter | ||
98A6 | RET | |||
Increment enemy dead counter
|
||||
98A7 | LD HL,($A089) | Increment humans killed | ||
98AA | INC HL | |||
98AB | LD ($A089),HL | |||
98AE | RET |
Prev: 97FD | Up: Map | Next: 98AF |