Prev: 9F14 Up: Map Next: A012
9F5F: Handle Rex over special tiles
Used by the routine at 947A.
9F5F XOR A Reset Rex on elevtor
9F60 LD ($A07A),A
9F63 LD HL,($A019) Set HL to point into tile type buffer data under Rex feet
9F66 LD DE,$0060
9F69 ADD HL,DE
9F6A LD A,(HL) Check tile type
9F6B CP $12 Jump forward to handle elevator
9F6D JP Z,$9F97
9F70 LD HL,($A019) Set HL to point into tile type buffer data in front-under Rex feet
9F73 LD DE,$0061
9F76 ADD HL,DE
9F77 LD A,(HL) Check tile type
9F78 CP $07 Jump to handle respawn
9F7A JP Z,$9C3B
9F7D CP $08 Jump to handle shield recharging
9F7F JP Z,$9FEE
9F82 CP $0D Jump to handle Double fire weapon bonus
9F84 JP Z,$9FB2
9F87 CP $0A Jump to handle laser weapon bonus
9F89 JP Z,$9FC1
9F8C CP $0B Jump to handle multiple weapon bonus
9F8E JP Z,$9FD0
9F91 CP $0C Jump to handle spray weapon bonus
9F93 JP Z,$9FDF
9F96 RET
handle Rex on elevator
9F97 XOR A Reset speed Rex
9F98 LD ($A091),A
9F9B LD A,$01 Set Rex on elevator
9F9D LD ($A07A),A
9FA0 LD A,($A0B7) Return if Rex is not grid fixed
9FA3 AND $07
9FA5 OR A
9FA6 RET NZ
9FA7 XOR A Set falling speed to zero
9FA8 LD ($A0BC),A
9FAB CALL $D11A Configure Rex for falling - Does nothing
9FAE CALL $D0C2 Configure Rex for jump
9FB1 RET
handle double fire weapon bonus
9FB2 INC HL Return if next tile is not the same type
9FB3 LD A,(HL)
9FB4 CP $0D
9FB6 RET NZ
9FB7 CALL $A78B Update weapon in inventory (HUD)
9FBA LD HL,$ABA0 Set HL the base address for text definition of DOUBLE FIRE weapon
9FBD CALL $D871 Show weapon bonus windows
9FC0 RET
handle laser weapon bonus
9FC1 INC HL Return if next tile is not the same type
9FC2 LD A,(HL)
9FC3 CP $0A
9FC5 RET NZ
9FC6 CALL $A791 Update weapon in inventory (HUD)
9FC9 LD HL,$ABB1 Set HL the base address for text definition of LASER weapon
9FCC CALL $D871 Show weapon bonus windows
9FCF RET
handle multiple weapon bonus
9FD0 INC HL Return if next tile is not the same type
9FD1 LD A,(HL)
9FD2 CP $0B
9FD4 RET NZ
9FD5 CALL $A797 Update weapon in inventory (HUD)
9FD8 LD HL,$ABBC Set HL the base address for text definition of MULTIPLE weapon
9FDB CALL $D871 Show weapon bonus windows
9FDE RET
handle spray weapon bonus
9FDF INC HL Return if next tile is not the same type
9FE0 LD A,(HL)
9FE1 CP $0C
9FE3 RET NZ
9FE4 CALL $A79D Update weapon in inventory (HUD)
9FE7 LD HL,$ABCA Set HL the base address for text definition of SPRAY weapon
9FEA CALL $D871 Show weapon bonus windows
9FED RET
handle shield recharging
9FEE INC HL Return if next tile is not the same type
9FEF LD A,(HL)
9FF0 CP $08
9FF2 RET NZ
9FF3 LD A,($A049) Return if shield active
9FF6 OR A
9FF7 RET NZ
9FF8 LD A,($A04D) Increment shield power
9FFB INC A
9FFC CP $64 Return if shield power = 100
9FFE RET Z
9FFF LD ($A04D),A Set the new shield power
A002 CALL $99FA Draw shield power
A005 LD A,($D83A) Return if channel 2 in use
A008 CP $FF
A00A RET NZ
A00B LD DE,$D826 Set DE to the shield recharging sound
A00E CALL $D5E7 Configure sound channel and mixer register
A011 RET
Prev: 9F14 Up: Map Next: A012