/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */ #include "FlameProjectile.h" #include "Game/Camera.h" #include "Map/Ground.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/ColorMap.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" CR_BIND_DERIVED(CFlameProjectile, CWeaponProjectile, (ProjectileParams(), ZeroVector)); CR_REG_METADATA(CFlameProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(spread), CR_MEMBER(curTime), CR_MEMBER(physLife), CR_MEMBER(invttl), CR_RESERVED(16) )); CFlameProjectile::CFlameProjectile(const ProjectileParams& params, const float3& spread) : CWeaponProjectile(params) , spread(spread) , curTime(0) { projectileType = WEAPON_FLAME_PROJECTILE; invttl = 1.0f / ttl;
#include "Map/Ground.h" #include "Rendering/ProjectileDrawer.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Projectiles/Unsynced/BubbleProjectile.h" #include "Sim/Projectiles/Unsynced/SmokeTrailProjectile.h" #include "Sim/Units/Unit.h" #include "Sim/Weapons/WeaponDef.h" #include "System/myMath.h" #ifdef TRACE_SYNC #include "System/Sync/SyncTracer.h" #endif CR_BIND_DERIVED(CTorpedoProjectile, CWeaponProjectile, (ProjectileParams())) CR_REG_METADATA(CTorpedoProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(tracking), CR_MEMBER(maxSpeed), CR_MEMBER(areaOfEffect), CR_MEMBER(nextBubble), CR_MEMBER(texx), CR_MEMBER(texy) )) CTorpedoProjectile::CTorpedoProjectile(const ProjectileParams& params): CWeaponProjectile(params) , tracking(0.0f) , maxSpeed(0.0f) , areaOfEffect(0.0f)
#include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Projectiles/Unsynced/SmokeTrailProjectile.h" #include "Sim/Units/Unit.h" #include "Sim/Weapons/WeaponDef.h" #include "System/Sync/SyncTracer.h" #include "System/Color.h" #include "System/Matrix44f.h" #include "System/myMath.h" #include "System/TimeProfiler.h" // the smokes life-time in frames static const float SMOKE_TIME = 70.0f; static const float TRACER_PARTS_STEP = 2.0f; CR_BIND_DERIVED(CStarburstProjectile, CWeaponProjectile, (ProjectileParams(), 0, 0, 0, 0, 0, ZeroVector)); CR_REG_METADATA(CStarburstProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(tracking), CR_MEMBER(maxGoodDif), CR_MEMBER(dir), CR_MEMBER(maxSpeed), CR_MEMBER(curSpeed), CR_MEMBER(uptime), CR_MEMBER(areaOfEffect), CR_MEMBER(age), CR_MEMBER(oldSmoke), CR_MEMBER(oldSmokeDir), CR_MEMBER(drawTrail), CR_MEMBER(numParts),
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */ #include "Game/Camera.h" #include "LightningProjectile.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Misc/GlobalSynced.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" #ifdef TRACE_SYNC #include "System/Sync/SyncTracer.h" #endif CR_BIND_DERIVED(CLightningProjectile, CWeaponProjectile, (ProjectileParams())); CR_REG_METADATA(CLightningProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(color), CR_MEMBER(displacements), CR_MEMBER(displacements2) )); CLightningProjectile::CLightningProjectile(const ProjectileParams& params): CWeaponProjectile(params) { projectileType = WEAPON_LIGHTNING_PROJECTILE; useAirLos = false; if (weaponDef != NULL) { assert(weaponDef->IsHitScanWeapon());
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */ #include "FireBallProjectile.h" #include "Game/Camera.h" #include "Map/Ground.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/TextureAtlas.h" #include "Rendering/ProjectileDrawer.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" #include "System/creg/STL_Deque.h" CR_BIND_DERIVED(CFireBallProjectile, CWeaponProjectile, (ProjectileParams())); CR_BIND(CFireBallProjectile::Spark, ); CR_REG_METADATA(CFireBallProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(sparks), CR_RESERVED(8) )); CR_REG_METADATA_SUB(CFireBallProjectile,Spark,( CR_MEMBER(pos), CR_MEMBER(speed), CR_MEMBER(size), CR_MEMBER(ttl), CR_RESERVED(8) )); #if defined(USE_GML) && GML_ENABLE_SIM
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */ #include "FlameProjectile.h" #include "Game/Camera.h" #include "Map/Ground.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/ColorMap.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" CR_BIND_DERIVED(CFlameProjectile, CWeaponProjectile, (ProjectileParams())); CR_REG_METADATA(CFlameProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(spread), CR_MEMBER(curTime), CR_MEMBER(physLife), CR_MEMBER(invttl), CR_RESERVED(16) )); CFlameProjectile::CFlameProjectile(const ProjectileParams& params): CWeaponProjectile(params) , curTime(0.0f) , physLife(0.0f) , invttl(0.0f) { projectileType = WEAPON_FLAME_PROJECTILE;
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */ #include "BeamLaserProjectile.h" #include "Game/Camera.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" #include <cstring> //memset CR_BIND_DERIVED(CBeamLaserProjectile, CWeaponProjectile, (ProjectileParams())) CR_REG_METADATA(CBeamLaserProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(coreColStart), CR_MEMBER(coreColEnd), CR_MEMBER(edgeColStart), CR_MEMBER(edgeColEnd), CR_MEMBER(thickness), CR_MEMBER(corethickness), CR_MEMBER(flaresize), CR_MEMBER(decay), CR_MEMBER(midtexx), CR_RESERVED(16) )) CBeamLaserProjectile::CBeamLaserProjectile(const ProjectileParams& params): CWeaponProjectile(params) , thickness(0.0f) , corethickness(0.0f)
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */ #include "EmgProjectile.h" #include "Game/Camera.h" #include "Map/Ground.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" #include "System/Sync/SyncTracer.h" CR_BIND_DERIVED(CEmgProjectile, CWeaponProjectile, (ProjectileParams())); CR_REG_METADATA(CEmgProjectile,( CR_SETFLAG(CF_Synced), CR_MEMBER(intensity), CR_MEMBER(color), CR_RESERVED(8) )); CEmgProjectile::CEmgProjectile(const ProjectileParams& params): CWeaponProjectile(params) { projectileType = WEAPON_EMG_PROJECTILE; if (weaponDef != NULL) { SetRadiusAndHeight(weaponDef->collisionSize, 0.0f); drawRadius = weaponDef->size; intensity = weaponDef->intensity; color = weaponDef->visuals.color;
#include "ExplosiveProjectile.h" #include "Game/Camera.h" #include "Map/Ground.h" #include "Rendering/GL/VertexArray.h" #include "Rendering/Textures/ColorMap.h" #include "Rendering/Textures/TextureAtlas.h" #include "Sim/Projectiles/ProjectileHandler.h" #include "Sim/Weapons/WeaponDef.h" #ifdef TRACE_SYNC #include "System/Sync/SyncTracer.h" #endif CR_BIND_DERIVED(CExplosiveProjectile, CWeaponProjectile, (ProjectileParams())); CR_REG_METADATA(CExplosiveProjectile, ( CR_SETFLAG(CF_Synced), CR_MEMBER(areaOfEffect), CR_MEMBER(invttl), CR_MEMBER(curTime) )); ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CExplosiveProjectile::CExplosiveProjectile(const ProjectileParams& params): CWeaponProjectile(params) , areaOfEffect(0.0f)
static const float SMOKE_TIME = 70.0f; static const float TRACER_PARTS_STEP = 2.0f; static const unsigned int MAX_NUM_AGEMODS = 32; CR_BIND(CStarburstProjectile::TracerPart, ) CR_REG_METADATA_SUB(CStarburstProjectile, TracerPart, ( CR_MEMBER(pos), CR_MEMBER(dir), CR_MEMBER(speedf), CR_MEMBER(ageMods), CR_MEMBER(numAgeMods) )) CR_BIND_DERIVED(CStarburstProjectile, CWeaponProjectile, (ProjectileParams())) CR_REG_METADATA(CStarburstProjectile, ( CR_SETFLAG(CF_Synced), CR_MEMBER(tracking), CR_MEMBER(ignoreError), CR_MEMBER(maxGoodDif), CR_MEMBER(maxSpeed), CR_MEMBER(acceleration), CR_MEMBER(uptime), CR_MEMBER(age), CR_MEMBER(oldSmoke), CR_MEMBER(oldSmokeDir), CR_MEMBER(numParts), CR_MEMBER(doturn), CR_MEMBER(smokeTrail), CR_MEMBER(missileAge),