1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#include "WeaponProjectileFactory.h"
#include "EmgProjectile.h"
#include "ExplosiveProjectile.h"
#include "FlameProjectile.h"
#include "FireBallProjectile.h"
#include "LaserProjectile.h"
#include "MissileProjectile.h"
#include "BeamLaserProjectile.h"
#include "LargeBeamLaserProjectile.h"
#include "LightningProjectile.h"
#include "StarburstProjectile.h"
#include "TorpedoProjectile.h"
#include "Sim/Misc/GlobalConstants.h"
#include "Sim/Weapons/WeaponDef.h"
unsigned int WeaponProjectileFactory::LoadProjectile(const ProjectileParams& params) {
const WeaponDef* weaponDef = params.weaponDef;
const CWeaponProjectile* projectile = NULL;
assert(weaponDef != NULL);
switch (weaponDef->projectileType) {
case WEAPON_EMG_PROJECTILE: {
projectile = new CEmgProjectile(params);
} break;
case WEAPON_EXPLOSIVE_PROJECTILE: {
projectile = new CExplosiveProjectile(params);
} break;
case WEAPON_FLAME_PROJECTILE: {
projectile = new CFlameProjectile(params);
} break;
case WEAPON_FIREBALL_PROJECTILE: {
projectile = new CFireBallProjectile(params);
} break;
case WEAPON_LASER_PROJECTILE: {
projectile = new CLaserProjectile(params);
} break;
case WEAPON_MISSILE_PROJECTILE: {
projectile = new CMissileProjectile(params);
} break;
case WEAPON_BEAMLASER_PROJECTILE: {
projectile = new CBeamLaserProjectile(params);
} break;
case WEAPON_LARGEBEAMLASER_PROJECTILE: {
projectile = new CLargeBeamLaserProjectile(params);
} break;
case WEAPON_LIGHTNING_PROJECTILE: {
projectile = new CLightningProjectile(params);
} break;
case WEAPON_STARBURST_PROJECTILE: {
projectile = new CStarburstProjectile(params);
} break;
case WEAPON_TORPEDO_PROJECTILE: {
projectile = new CTorpedoProjectile(params);
} break;
default: {
return -1u;
} break;
}
return (projectile->id);
}
|