Files
commandergenius/alienblaster/project/jni/application/src/global.cpp
pelya 99698187cf True HW acceleration for Alien Blaster - it now runs 45 FPS on ADP1,
and 30 FPS on HTC Evo (it could run faster but they limited max FPS in GL renderer).
See file SdlForwardCompat.h to have an idea how to make your SDL 1.2 app HW accelerated with SDL 1.3 -
it's a compilation of hacks but whatever.
2010-07-06 13:57:58 +03:00

381 lines
17 KiB
C++

/***************************************************************************
alienBlaster
Copyright (C) 2004
Paul Grathwohl, Arne Hormann, Daniel Kuehn, Soenke Schwardt
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
***************************************************************************/
#include "global.h"
#include "options.h"
#include "asstring.h"
#include <iostream>
#include "SDL.h"
#include "surfaceDB.h"
using namespace std;
int GAME_LENGTH = 300000; // ms
int ITEM_LIFETIME = 20000; // ms
int ITEM_APPEAR_DELAY = 10000; // ms
int ITEM_APPEAR_RAND_DELAY = 20000; // ms
int ITEM_HEALTH_REPAIR_AMOUNT = 100;
int ITEM_HEATSEEKER_AMMO = 70;
int ITEM_NUKE_AMMO = 2;
int ITEM_DEFLECTOR_AMMO = 1;
int ITEM_DEFLECTOR_ACTIVATION_DIST = 200;
int ITEM_DEFLECTOR_POWER = 100;
int ITEM_DEFLECTOR_DURATION = 15000;
int ITEM_APPEAR_CHANCES[] = { 50, 20, 30, 30, 30, 50, 20, 20, 30, 20, 20 };
int GENERATE_ENEMY_DELAY = 100;
int GENERATE_ENEMY_RAND_DELAY = 2000;
int LIGHT_FIGHTER_MAX_SHIELD = 200;
int HEAVY_FIGHTER_MAX_SHIELD = 500;
int LIGHT_FIGHTER_MAX_DAMAGE = 200;
int HEAVY_FIGHTER_MAX_DAMAGE = 500;
int LIGHT_FIGHTER_SHIELD_RECHARGE = 80;
int HEAVY_FIGHTER_SHIELD_RECHARGE = 110;
int RACER_DEFLECTOR_ACTIVATION_DIST = 150;
int RACER_DEFLECTOR_POWER = 50;
int RACER_SONIC_ACTIVATION_DIST = 200;
int RACER_SONIC_POWER = 50;
int ENEMY_HITPOINTS[] = { 80, 120, 150, 2000, 1500, 1000, 1000, 3000 };
int ENEMY_COLLISION_DAMAGE[] = {20, 40, 0, 0, 0, 0, 0, 2000};
int ENEMY_DIES_ITEM_APPEAR_CHANCE[] = {15, 12, 8, 0, 0, 0, 0, 1};
int ENEMY_APPEAR_CHANCES[] = {40, 40, 10, 0, 0, 0, 0, 0};
int ENEMY_COOLDOWN_PRIMARY[] = {400, 400, 400, 50, 500, 100, 100, 300};
int ENEMY_COOLDOWN_SECONDARY[] = {0, 0, 2000, 0, 0, 0, 0, 600};
int ENEMY_RAND_WAIT_PRIMARY[] = {1500, 1000, 300, 80, 1000, 200, 200, 2000};
int ENEMY_RAND_WAIT_SECONDARY[] = {0, 0, 10000, 0, 0, 0, 0, 400};
int GENERATE_FORMATION_DELAY = 5000;
int GENERATE_FORMATION_RAND_DELAY = 20000;
int FORMATION_MAX_NR_ENEMYS[] = {7,7,7,6};
int FORMATION_SP_CHANCES[] = { 10, 10, 5, 5, 20, 10, 5, 20, 10, 20, 10 };
int FORMATION_SP_PRIMARY_DELAY[] = {0, 80, 120, 160,
500, 800, 1100,
150, 250, 150, 250};
int FORMATION_SP_PRIMARY_RAND_DELAY[] = { 0, 80, 120, 160,
1000, 1500, 2000,
0, 0, 0, 0 };
void parseGlobalConfigValues( int difficultyLevel ) {
Options *op = 0;
op = new Options( FN_DIFFICULTY_CONFIG +
asString(difficultyLevel) +
FN_DIFFICULTY_CONFIG_SUFFIX );
op->getInt( "GAME_LENGTH", GAME_LENGTH );
op->getInt( "ITEM_LIFETIME", ITEM_LIFETIME );
op->getInt( "ITEM_APPEAR_DELAY", ITEM_APPEAR_DELAY );
op->getInt( "ITEM_APPEAR_RAND_DELAY", ITEM_APPEAR_RAND_DELAY );
op->getInt( "ITEM_HEALTH_REPAIR_AMOUNT", ITEM_HEALTH_REPAIR_AMOUNT );
op->getInt( "ITEM_HEATSEEKER_AMMO", ITEM_HEATSEEKER_AMMO );
op->getInt( "ITEM_NUKE_AMMO", ITEM_NUKE_AMMO );
op->getInt( "ITEM_DEFLECTOR_AMMO", ITEM_DEFLECTOR_AMMO );
op->getInt( "ITEM_DEFLECTOR_DURATION", ITEM_DEFLECTOR_DURATION );
op->getInt( "ITEM_DEFLECTOR_ACTIVATION_DIST", ITEM_DEFLECTOR_ACTIVATION_DIST );
op->getInt( "ITEM_DEFLECTOR_POWER", ITEM_DEFLECTOR_POWER );
op->getInt( "GENERATE_ENEMY_DELAY", GENERATE_ENEMY_DELAY );
op->getInt( "GENERATE_ENEMY_RAND_DELAY", GENERATE_ENEMY_RAND_DELAY );
op->getInt( "LIGHT_FIGHTER_MAX_SHIELD", LIGHT_FIGHTER_MAX_SHIELD );
op->getInt( "HEAVY_FIGHTER_MAX_SHIELD", HEAVY_FIGHTER_MAX_SHIELD );
op->getInt( "LIGHT_FIGHTER_MAX_DAMAGE", LIGHT_FIGHTER_MAX_DAMAGE );
op->getInt( "HEAVY_FIGHTER_MAX_DAMAGE", HEAVY_FIGHTER_MAX_DAMAGE );
op->getInt( "LIGHT_FIGHTER_SHIELD_RECHARGE", LIGHT_FIGHTER_SHIELD_RECHARGE );
op->getInt( "HEAVY_FIGHTER_SHIELD_RECHARGE", HEAVY_FIGHTER_SHIELD_RECHARGE );
op->getInt( "HEAVY_FIGHTER_DEFLECTOR_ACTIVATION_DIST",
RACER_DEFLECTOR_ACTIVATION_DIST );
op->getInt( "HEAVY_FIGHTER_DEFLECTOR_POWER",
RACER_DEFLECTOR_POWER );
op->getInt( "FIGHTER_HITPOINTS", ENEMY_HITPOINTS[ FIGHTER ] );
op->getInt( "BOMBER_HITPOINTS", ENEMY_HITPOINTS[ BOMBER ] );
op->getInt( "TURRET_HITPOINTS", ENEMY_HITPOINTS[ TANK ] );
op->getInt( "BOSS1_MAIN_GUN_HITPOINTS", ENEMY_HITPOINTS[ BOSS_1_MAIN_GUN ] );
op->getInt( "BOSS1_ROCKET_LAUNCHER_HITPOINTS", ENEMY_HITPOINTS[ BOSS_1_ROCKET_LAUNCHER ] );
op->getInt( "BOSS1_SHOT_BATTERY_LEFT_HITPOINTS",
ENEMY_HITPOINTS[ BOSS_1_SHOT_BATTERY_LEFT ] );
op->getInt( "BOSS1_SHOT_BATTERY_RIGHT_HITPOINTS",
ENEMY_HITPOINTS[ BOSS_1_SHOT_BATTERY_RIGHT ] );
op->getInt( "COLLISION_DAMAGE_FIGHTER", ENEMY_COLLISION_DAMAGE[ FIGHTER ] );
op->getInt( "COLLISION_DAMAGE_BOMBER", ENEMY_COLLISION_DAMAGE[ BOMBER ] );
op->getInt( "ENEMY_DIES_ITEM_APPEAR_CHANCE_FIGHTER",
ENEMY_DIES_ITEM_APPEAR_CHANCE[ FIGHTER ] );
op->getInt( "ENEMY_DIES_ITEM_APPEAR_CHANCE_BOMBER",
ENEMY_DIES_ITEM_APPEAR_CHANCE[ BOMBER ] );
op->getInt( "ENEMY_DIES_ITEM_APPEAR_CHANCE_TURRET",
ENEMY_DIES_ITEM_APPEAR_CHANCE[ TANK ] );
op->getInt( "ENEMY_APPEAR_CHANCE_FIGHTER",
ENEMY_APPEAR_CHANCES[ FIGHTER ] );
op->getInt( "ENEMY_APPEAR_CHANCE_BOMBER",
ENEMY_APPEAR_CHANCES[ BOMBER ] );
op->getInt( "ENEMY_APPEAR_CHANCE_TURRET",
ENEMY_APPEAR_CHANCES[ TANK ] );
op->getInt( "ENEMY_COOLDOWN_FIGHTER",
ENEMY_COOLDOWN_PRIMARY[ FIGHTER ] );
op->getInt( "ENEMY_COOLDOWN_BOMBER",
ENEMY_COOLDOWN_PRIMARY[ BOMBER ] );
op->getInt( "ENEMY_COOLDOWN_TURRET",
ENEMY_COOLDOWN_PRIMARY[ TANK ] );
op->getInt( "ENEMY_COOLDOWN_BOSS1_MAIN_GUN",
ENEMY_COOLDOWN_PRIMARY[ BOSS_1_MAIN_GUN ] );
op->getInt( "ENEMY_COOLDOWN_BOSS1_ROCKET_LAUNCHER",
ENEMY_COOLDOWN_PRIMARY[ BOSS_1_ROCKET_LAUNCHER] );
op->getInt( "ENEMY_COOLDOWN_BOSS1_SHOT_BATTERY_LEFT",
ENEMY_COOLDOWN_PRIMARY[ BOSS_1_SHOT_BATTERY_LEFT] );
op->getInt( "ENEMY_COOLDOWN_BOSS1_SHOT_BATTERY_RIGHT",
ENEMY_COOLDOWN_PRIMARY[ BOSS_1_SHOT_BATTERY_RIGHT ] );
op->getInt( "ENEMY_COOLDOWN_SECONDARY_TURRET", ENEMY_COOLDOWN_SECONDARY[ TANK ] );
op->getInt( "ENEMY_RAND_WAIT_FIGHTER",
ENEMY_RAND_WAIT_PRIMARY[ FIGHTER ] );
op->getInt( "ENEMY_RAND_WAIT_BOMBER",
ENEMY_RAND_WAIT_PRIMARY[ BOMBER ] );
op->getInt( "ENEMY_RAND_WAIT_TURRET",
ENEMY_RAND_WAIT_PRIMARY[ TANK ] );
op->getInt( "ENEMY_RAND_WAIT_BOSS1_MAIN_GUN",
ENEMY_RAND_WAIT_PRIMARY[ BOSS_1_MAIN_GUN ] );
op->getInt( "ENEMY_RAND_WAIT_BOSS1_ROCKET_LAUNCHER",
ENEMY_RAND_WAIT_PRIMARY[ BOSS_1_ROCKET_LAUNCHER ] );
op->getInt( "ENEMY_RAND_WAIT_BOSS1_SHOT_BATTERY_LEFT",
ENEMY_RAND_WAIT_PRIMARY[ BOSS_1_SHOT_BATTERY_LEFT ] );
op->getInt( "ENEMY_RAND_WAIT_BOSS1_SHOT_BATTERY_RIGHT",
ENEMY_RAND_WAIT_PRIMARY[ BOSS_1_SHOT_BATTERY_RIGHT ] );
op->getInt( "ENEMY_RAND_WAIT_SECONDARY_TURRET",
ENEMY_RAND_WAIT_SECONDARY[ TANK ] );
op->getInt( "ITEM_APPEAR_CHANCE_PRIMARY_UPGRADE",
ITEM_APPEAR_CHANCES[ ITEM_PRIMARY_UPGRADE ] );
op->getInt( "ITEM_APPEAR_CHANCE_DUMBRIFE_DOUBLE",
ITEM_APPEAR_CHANCES[ ITEM_DUMBFIRE_DOUBLE ] );
op->getInt( "ITEM_APPEAR_CHANCE_KICK_ASS_ROCKET",
ITEM_APPEAR_CHANCES[ ITEM_KICK_ASS_ROCKET ] );
op->getInt( "ITEM_APPEAR_CHANCE_HELLFIRE",
ITEM_APPEAR_CHANCES[ ITEM_HELLFIRE ] );
op->getInt( "ITEM_APPEAR_CHANCE_MACHINE_GUN",
ITEM_APPEAR_CHANCES[ ITEM_MACHINE_GUN ] );
op->getInt( "ITEM_APPEAR_CHANCE_HEALTH",
ITEM_APPEAR_CHANCES[ ITEM_HEALTH ] );
op->getInt( "ITEM_APPEAR_CHANCE_HEATSEEKER",
ITEM_APPEAR_CHANCES[ ITEM_HEATSEEKER ] );
op->getInt( "ITEM_APPEAR_CHANCE_NUKE",
ITEM_APPEAR_CHANCES[ ITEM_NUKE ] );
op->getInt( "ITEM_APPEAR_CHANCE_DEFLECTOR",
ITEM_APPEAR_CHANCES[ ITEM_DEFLECTOR ] );
op->getInt( "ITEM_APPEAR_CHANCE_ENERGY_BEAM",
ITEM_APPEAR_CHANCES[ ITEM_ENERGY_BEAM ] );
op->getInt( "ITEM_APPEAR_CHANCE_LASER",
ITEM_APPEAR_CHANCES[ ITEM_LASER ] );
op->getInt( "GENERATE_FORMATION_DELAY", GENERATE_FORMATION_DELAY );
op->getInt( "GENERATE_FORMATION_RAND_DELAY", GENERATE_FORMATION_RAND_DELAY );
op->getInt( "FORMATION_MAX_NR_ENEMYS_V",
FORMATION_MAX_NR_ENEMYS[ FORMATION_V ] );
op->getInt( "FORMATION_MAX_NR_ENEMYS_REVERSE_V",
FORMATION_MAX_NR_ENEMYS[ FORMATION_REVERSE_V ] );
op->getInt( "FORMATION_MAX_NR_ENEMYS_BLOCK",
FORMATION_MAX_NR_ENEMYS[ FORMATION_BLOCK ] );
op->getInt( "FORMATION_MAX_NR_ENEMYS_LINE",
FORMATION_MAX_NR_ENEMYS[ FORMATION_LINE ] );
for ( int i = 0; i < NR_FORMATION_TYPES; i++ ) {
if ( FORMATION_MAX_NR_ENEMYS[ i ] > FORMATION_MAX_NR_ENEMYS_HARD_LIMIT[ i ] )
FORMATION_MAX_NR_ENEMYS[ i ] = FORMATION_MAX_NR_ENEMYS_HARD_LIMIT[ i ];
}
op->getInt( "FORMATION_SP_CHANCE_NONE",
FORMATION_SP_CHANCES[ FORMATION_SP_NONE ] );
op->getInt( "FORMATION_SP_CHANCE_RAND_FAST",
FORMATION_SP_CHANCES[ FORMATION_SP_RAND_FAST ] );
op->getInt( "FORMATION_SP_CHANCE_RAND_MEDIUM",
FORMATION_SP_CHANCES[ FORMATION_SP_RAND_MEDIUM ] );
op->getInt( "FORMATION_SP_CHANCE_RAND_SLOW",
FORMATION_SP_CHANCES[ FORMATION_SP_RAND_SLOW ] );
op->getInt( "FORMATION_SP_CHANCE_VOLLEY_FAST",
FORMATION_SP_CHANCES[ FORMATION_SP_VOLLEY_FAST ] );
op->getInt( "FORMATION_SP_CHANCE_VOLLEY_MEDIUM",
FORMATION_SP_CHANCES[ FORMATION_SP_VOLLEY_MEDIUM ] );
op->getInt( "FORMATION_SP_CHANCE_VOLLEY_SLOW",
FORMATION_SP_CHANCES[ FORMATION_SP_VOLLEY_SLOW ] );
op->getInt( "FORMATION_SP_CHANCE_LEFT_RIGHT_FAST",
FORMATION_SP_CHANCES[ FORMATION_SP_LEFT_RIGHT_FAST ] );
op->getInt( "FORMATION_SP_CHANCE_LEFT_RIGHT_MEDIUM",
FORMATION_SP_CHANCES[ FORMATION_SP_LEFT_RIGHT_MEDIUM ] );
op->getInt( "FORMATION_SP_CHANCE_RIGHT_LEFT_FAST",
FORMATION_SP_CHANCES[ FORMATION_SP_RIGHT_LEFT_FAST ] );
op->getInt( "FORMATION_SP_CHANCE_RIGHT_LEFT_MEDIUM",
FORMATION_SP_CHANCES[ FORMATION_SP_RIGHT_LEFT_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_RAND_FAST",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_RAND_FAST ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_RAND_MEDIUM",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_RAND_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_RAND_SLOW",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_RAND_SLOW ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_VOLLEY_FAST",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_VOLLEY_FAST ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_VOLLEY_MEDIUM",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_VOLLEY_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_VOLLEY_SLOW",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_VOLLEY_SLOW ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_LEFT_RIGHT_FAST",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_LEFT_RIGHT_FAST ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_LEFT_RIGHT_MEDIUM",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_LEFT_RIGHT_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_RIGHT_LEFT_FAST",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_RIGHT_LEFT_FAST ] );
op->getInt( "FORMATION_SP_PRIM_DELAY_RIGHT_LEFT_MEDIUM",
FORMATION_SP_PRIMARY_DELAY[ FORMATION_SP_RIGHT_LEFT_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_RAND_FAST",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_RAND_FAST ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_RAND_MEDIUM",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_RAND_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_RAND_SLOW",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_RAND_SLOW ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_VOLLEY_FAST",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_VOLLEY_FAST ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_VOLLEY_MEDIUM",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_VOLLEY_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_VOLLEY_SLOW",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_VOLLEY_SLOW ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_LEFT_RIGHT_FAST",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_LEFT_RIGHT_FAST ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_LEFT_RIGHT_MEDIUM",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_LEFT_RIGHT_MEDIUM ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_RIGHT_LEFT_FAST",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_RIGHT_LEFT_FAST ] );
op->getInt( "FORMATION_SP_PRIM_RAND_DELAY_RIGHT_LEFT_MEDIUM",
FORMATION_SP_PRIMARY_RAND_DELAY[ FORMATION_SP_RIGHT_LEFT_MEDIUM ] );
delete op;
}
/////////////////////
int getRandValue( const int *choicesWeights, int nrChoices, int sumWeights ) {
int sum = 0;
if ( sumWeights != 0 ) sum = sumWeights;
else for ( int i = 0; i < nrChoices; i++ ) sum += choicesWeights[ i ];
if ( sum == 0 ) {
cout << "Error in getRandValue: sum==0!" << endl;
exit(1);
}
int val = rand() % sum;
int idx = 0;
int tmpSum = 0;
while ( idx < nrChoices ) {
tmpSum += choicesWeights[ idx ];
if ( val < tmpSum ) {
return idx;
}
idx++;
}
cout << "Error in getRandValue: val: " << val << endl;
exit(1);
}
/////////////////////////////
void initAllSurfaces() {
surfaceDB.loadSurface("./images/fighter.bmp" );
surfaceDB.loadSurface("./images/fighterShadow.bmp", true);
surfaceDB.loadSurface("./images/bomber.bmp");
surfaceDB.loadSurface("./images/bomberShadow.bmp", true);
surfaceDB.loadSurface("./images/tank.bmp");
surfaceDB.loadSurface("./images/boss1MainGun.bmp");
surfaceDB.loadSurface("./images/boss1RocketLauncher.bmp");
surfaceDB.loadSurface("./images/boss1ShotBatteryLeft.bmp");
surfaceDB.loadSurface("./images/boss1ShotBatteryRight.bmp");
surfaceDB.loadSurface("./images/wreckFighter.bmp");
surfaceDB.loadSurface("./images/wreckBomber.bmp");
surfaceDB.loadSurface("./images/wreckTank.bmp");
surfaceDB.loadSurface("./images/wreckBoss1.bmp");
surfaceDB.loadSurface("./images/wreckBossBackground.bmp");
surfaceDB.loadSurface("./images/boss.bmp");
surfaceDB.loadSurface("./images/normalShot.bmp");
surfaceDB.loadSurface("./images/heavyShot.bmp");
surfaceDB.loadSurface("./images/normalShotHF.bmp");
surfaceDB.loadSurface("./images/dumbfire.bmp");
surfaceDB.loadSurface("./images/kickAssRocket.bmp");
surfaceDB.loadSurface("./images/kickAssRocketShadow.bmp", true);
surfaceDB.loadSurface("./images/hellfire.bmp");
surfaceDB.loadSurface("./images/hellfireShadow.bmp", true);
surfaceDB.loadSurface("./images/machineGun.bmp");
surfaceDB.loadSurface("./images/energyBeam.bmp", true);
surfaceDB.loadSurface("./images/laser.bmp");
surfaceDB.loadSurface("./images/enemyShotNormal.bmp");
surfaceDB.loadSurface("./images/tankRocket.bmp");
surfaceDB.loadSurface("./images/tankRocketShadow.bmp", true);
surfaceDB.loadSurface("./images/heatseeker.bmp");
surfaceDB.loadSurface("./images/shotNuke.bmp");
surfaceDB.loadSurface("./images/shotNukeShadow.bmp", true);
surfaceDB.loadSurface("./images/nukeEffect.bmp");
surfaceDB.loadSurface("./images/sonic.bmp");
surfaceDB.loadSurface("./images/itemPrimaryUpgrade.bmp");
surfaceDB.loadSurface("./images/itemDumbfireDouble.bmp");
surfaceDB.loadSurface("./images/itemKickAssRocket.bmp");
surfaceDB.loadSurface("./images/itemHellfire.bmp");
surfaceDB.loadSurface("./images/itemMachineGun.bmp");
surfaceDB.loadSurface("./images/itemHealth.bmp");
surfaceDB.loadSurface("./images/itemHeatseeker.bmp");
surfaceDB.loadSurface("./images/itemNuke.bmp");
surfaceDB.loadSurface("./images/itemDeflector.bmp");
surfaceDB.loadSurface("./images/itemEnergyBeam.bmp");
surfaceDB.loadSurface("./images/itemLaser.bmp");
surfaceDB.loadSurface("./images/background.bmp");
surfaceDB.loadSurface("./images/lightFighterShieldDamaged.bmp");
surfaceDB.loadSurface("./images/heavyFighterShieldDamaged.bmp");
surfaceDB.loadSurface("./images/heavyFighterDeflector.bmp", true);
//surfaceDB.loadSurface("./images/font-20red");
//surfaceDB.loadSurface("./images/font-20blue");
surfaceDB.loadSurface("./images/explosion.bmp");
surfaceDB.loadSurface("./images/explosionEnemy.bmp");
surfaceDB.loadSurface("./images/bannerExcellent.bmp", true);
surfaceDB.loadSurface("./images/bannerYouRule.bmp", true);
surfaceDB.loadSurface("./images/bannerHeiho.bmp", true);
surfaceDB.loadSurface("./images/bannerHealth.bmp", true);
surfaceDB.loadSurface("./images/bannerEnemysKilled.bmp", true);
surfaceDB.loadSurface("./images/bannerBonus100.bmp", true);
surfaceDB.loadSurface("./images/bannerBonus200.bmp", true);
}