Ground Attack | Routines |
Prev: 6F90 | Up: Map | Next: 7210 |
Used by the routine at Game_Update.
|
||||
Ship_Update | 70E4 | CALL Game_KeyPress | See which keys are being pressed. | |
70E7 | LD HL,Keyboard_RowPressed | |||
70EA | BIT 3,(HL) | Key '5' row | ||
70EC | JR Z,Ship_Update_0 | |||
70EE | INC HL | Keys '6' ~ '0' | ||
70EF | BIT 5,(HL) | '6' | ||
70F1 | JR Z,Ship_Update_1 | |||
70F3 | BIT 4,(HL) | '7' | ||
70F5 | JR Z,Ship_Update_2 | |||
70F7 | BIT 3,(HL) | '8' | ||
70F9 | JR Z,Ship_Update_3 | |||
70FB | JR Ship_Update_4 | |||
Ship_Update_0 | 70FD | LD HL,Item_ShipX | If ship X is greater than 1 move left by one character. | |
7100 | LD A,$01 | |||
7102 | CP (HL) | |||
7103 | JR Z,Ship_Update_4 | |||
7105 | DEC (HL) | |||
7106 | LD HL,(Item_ShipPosOffset) | |||
7109 | DEC HL | |||
710A | LD (Item_ShipPosOffset),HL | |||
710D | JR Ship_Update_4 | |||
Ship_Update_1 | 710F | LD HL,Item_ShipY | If ship Y is less than 22 move down by one character. | |
7112 | LD A,$16 | |||
7114 | CP (HL) | |||
7115 | JR Z,Ship_Update_4 | |||
7117 | INC (HL) | |||
7118 | LD DE,$0020 | |||
711B | LD HL,(Item_ShipPosOffset) | |||
711E | ADD HL,DE | |||
711F | LD (Item_ShipPosOffset),HL | |||
7122 | JR Ship_Update_4 | |||
Ship_Update_2 | 7124 | LD HL,Item_ShipY | If ship Y is greater than 1 move up by one character. | |
7127 | LD A,$01 | |||
7129 | CP (HL) | |||
712A | JR Z,Ship_Update_4 | |||
712C | DEC (HL) | |||
712D | LD DE,$FFE0 | |||
7130 | LD HL,(Item_ShipPosOffset) | |||
7133 | ADD HL,DE | |||
7134 | LD (Item_ShipPosOffset),HL | |||
7137 | JR Ship_Update_4 | |||
Ship_Update_3 | 7139 | LD HL,Item_ShipX | Make sure ship X is less then 16. | |
713C | LD A,$10 | |||
713E | CP (HL) | |||
713F | JR Z,Ship_Update_4 | |||
7141 | LD HL,(Item_ShipPosOffset) | Make sure the space the ship is moving into is a space. | ||
7144 | LD DE,BgMap_Start0 | |||
7147 | ADD HL,DE | |||
7148 | LD A,(HL) | |||
7149 | CP $20 | |||
714B | JR NZ,Ship_Update_4 | |||
714D | LD HL,Item_ShipX | Move ship forward by one character. | ||
7150 | INC (HL) | |||
7151 | LD HL,Item_ShipPosOffset | |||
7154 | INC (HL) | |||
Ship_Update_4 | 7155 | LD HL,BgMap_Start0 | ||
7158 | LD DE,(Item_ShipPosOffset) | |||
715C | ADD HL,DE | |||
715D | LD A,(HL) | |||
715E | CP $20 | |||
7160 | JR NZ,Ship_Update_5 | |||
7162 | LD A,$9C | Update the ships tile and the background map. | ||
7164 | LD (HL),A | |||
7165 | LD (Item_ShipTile),A | |||
7168 | LD HL,Bg_Attr_From | Update the colour as well. | ||
716B | ADD HL,DE | |||
716C | LD A,$45 | |||
716E | LD (HL),A | |||
716F | LD (Item_ShipColour),A | |||
7172 | JR Ship_Update_8 | |||
Ship_Update_5 | 7174 | LD A,$9A | Set ship to exploded tile. | |
7176 | LD (HL),A | |||
7177 | LD (Item_ShipTile),A | |||
717A | LD HL,Bg_Attr_From | |||
717D | ADD HL,DE | |||
717E | LD A,$47 | |||
7180 | LD (HL),A | |||
7181 | LD (Item_ShipColour),A | |||
7184 | LD HL,Char_Ships | Decrease number of ships left. | ||
7187 | DEC (HL) | |||
7188 | LD HL,(Item_ShipPosOffset) | Workout which bomb, if any, has hit the ship and remove it. | ||
718B | LD DE,(Rocket1_Offset) | |||
718F | XOR A | |||
7190 | SBC HL,DE | |||
7192 | JR NZ,Ship_Update_6 | |||
7194 | LD (Rocket1_Offset),HL | |||
Ship_Update_6 | 7197 | LD HL,(Item_ShipPosOffset) | ||
719A | LD DE,(Rocket2_Offset) | |||
719E | XOR A | |||
719F | SBC HL,DE | |||
71A1 | JR NZ,Ship_Update_7 | |||
71A3 | LD (Rocket2_Offset),HL | |||
Ship_Update_7 | 71A6 | RET | ||
Ship_Update_8 | 71A7 | LD HL,Keyboard_KeyPressed | ||
71AA | BIT 1,(HL) | '0' | ||
71AC | JR Z,Ship_Update_14 | |||
71AE | BIT 2,(HL) | '9' | ||
71B0 | JR Z,Ship_Update_9 | |||
71B2 | RET | |||
Bombs
|
||||
Ship_Update_9 | 71B3 | LD HL,(Bomb1_Offset) | If bomb one is available, use it. | |
71B6 | LD A,H | |||
71B7 | OR L | |||
71B8 | JR Z,Ship_Update_10 | |||
71BA | LD HL,(Bomb2_Offset) | If bomb two is available, use it. | ||
71BD | LD A,H | |||
71BE | OR L | |||
71BF | JR Z,Ship_Update_12 | |||
71C1 | RET | No bombs available, do nothing. | ||
Bomb One Fire
|
||||
Ship_Update_10 | 71C2 | LD HL,(Item_ShipPosOffset) | Position bomb below the ship. | |
71C5 | LD DE,$0021 | |||
71C8 | ADD HL,DE | |||
71C9 | LD (Bomb1_Offset),HL | |||
71CC | LD DE,(Bomb2_Offset) | If bomb 2 is already there, remove the bomb 1 | ||
71D0 | XOR A | |||
71D1 | SBC HL,DE | |||
71D3 | JR NZ,Ship_Update_11 | |||
71D5 | LD (Bomb1_Offset),HL | |||
71D8 | RET | |||
Ship_Update_11 | 71D9 | LD A,$9D | Set tile and colour for bomb. | |
71DB | LD (Bomb1_Tile),A | |||
71DE | LD A,$47 | |||
71E0 | LD (Bomb1_Colour),A | |||
71E3 | CALL Bomb1_Handler | |||
71E6 | RET | |||
Bomb Two Fire
|
||||
Ship_Update_12 | 71E7 | LD HL,(Item_ShipPosOffset) | Position bomb below the ship. | |
71EA | LD DE,$0021 | |||
71ED | ADD HL,DE | |||
71EE | LD (Bomb2_Offset),HL | |||
71F1 | LD DE,(Bomb1_Offset) | If Bomb 1 is already in position, remove this bomb. | ||
71F5 | XOR A | |||
71F6 | SBC HL,DE | |||
71F8 | JR NZ,Ship_Update_13 | |||
71FA | LD (Bomb2_Offset),HL | |||
71FD | RET | |||
Ship_Update_13 | 71FE | LD A,$9D | Set tile and colour for Bomb 2 | |
7200 | LD (Bomb2_Tile),A | |||
7203 | LD A,$47 | |||
7205 | LD (Bomb2_Colour),A | |||
7208 | CALL Bomb2_Handler | |||
720B | RET | |||
Ship_Update_14 | 720C | CALL Laser_Handler | Lasers | |
720F | RET |
Prev: 6F90 | Up: Map | Next: 7210 |