- Targets
- Bonus life every 10,000 points
- Player movement
- Fuel mechanics
- Destroying a bridge advances the respawn point without crossing it
- Enemy activation delay after spawning
- Tank behavior after bridge destruction depends on the level
- Infinite loop after bridge 48
Targets
The player's plane can hit eight types of targets with its missile. Six are
mobile enemies, one is a static facility, and one is a terrain structure:
| Target | Points |
|---|---|
| Ship | 30 |
| Helicopter | 60 |
| Balloon | 60 |
| Fuel Depot | 80 |
| Fighter | 100 |
| Helicopter+ | 150 |
| Tank | 250 |
| Bridge | 500 |
Bonus life every 10,000 points
A bonus life is awarded every 10,000 points, accompanied by a jingle
(listen).
Player movement
The game has three speed settings that control how fast the terrain scrolls:
| Speed | Terrain scroll |
|---|---|
| Slow | 1 px/frame |
| Normal | 2 px/frame |
| Fast | 4 px/frame |
See state_speed (speed state), handle_up (accelerate), handle_down (decelerate),
advance_scroll (scroll update).
Fuel mechanics
The fuel system governs how long the player can stay airborne:
| Mechanic | Rate | Duration |
|---|---|---|
| Consumption | 1 unit every 2 frames (~6 units/sec) | Full tank lasts ~40 sec |
| Refueling | 4 units per frame (~48 units/sec) | Full refuel in ~5 sec |
Key details:
- Fuel consumption speed does not depend on the movement speed
- Low fuel warning triggers when fuel drops below 64
- A "tank full" beep (signal_fuel_level_excessive) plays when fuel reaches 252
Destroying a bridge advances the respawn point without crossing it
Bridge progress is recorded the moment the bridge is destroyed — not when the
player crosses it. If the player dies before reaching the next bridge, the
respawn still places them past the destroyed one. The counter (state_bridge_player_1 for
player 1, state_bridge_player_2 for player 2) is incremented at next_bridge_player_1 and next_bridge_player_2 and is
never decremented on death.
Enemy activation delay after spawning
Enemies do not move or shoot immediately when they appear — there is a delay
of up to 32 frames before they become active. After the player destroys a
bridge, the delay halves to up to 16 frames.
Tank behavior after bridge destruction depends on the level
When the player destroys a bridge while a tank on the road survives, what
happens next depends on the current bridge number. On bridges 1–7 the tank
freezes in place. From bridge 8 onwards it continues moving until it reaches
the gap left by the destroyed bridge, then fires shells into it.
The threshold is a single comparison at tank_bridge_check against bridge 7, using the
player's progress from state_bridge_player_1 (player 1) or state_bridge_player_2 (player 2). The two
paths diverge from convert_tank_to_bank.
Infinite loop after bridge 48
The game has 48 unique bridge sections, each containing 64 terrain fragments.
After the player completes all 48, the game does not end — instead it wraps
around using the formula:
new_bridge = ((progress - 48) mod 15) + 33
This creates an infinite loop through bridges 33-48 (the hardest 15 bridges),
making the game theoretically endless. See init_current_bridge for the wraparound
algorithm.