Routines |
Prev: 9F14 | Up: Map | Next: A012 |
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 |