re3/src/weapons/ProjectileInfo.h

32 lines
966 B
C
Raw Normal View History

#pragma once
2020-01-07 15:26:23 +00:00
class CEntity;
class CObject;
2020-01-07 15:26:23 +00:00
class CProjectile;
enum eWeaponType;
class CProjectileInfo
{
public:
2020-01-07 15:26:23 +00:00
eWeaponType m_eWeaponType;
CEntity* m_pSource;
2020-01-11 11:30:17 +00:00
uint32 m_nExplosionTime;
bool m_bInUse;
2020-01-07 15:26:23 +00:00
CVector m_vecPos;
public:
static CProjectileInfo* GetProjectileInfo(int32 id);
2020-01-12 11:31:04 +00:00
static CProjectile* (&ms_apProjectile)[NUM_PROJECTILES];
2020-01-07 15:26:23 +00:00
2020-01-11 11:30:17 +00:00
static void Initialise();
static void Shutdown();
2020-01-12 11:31:04 +00:00
static bool AddProjectile(CEntity *ped, eWeaponType weapon, CVector pos, float speed);
static void RemoveProjectile(CProjectileInfo *info, CProjectile *projectile);
2020-01-11 11:30:17 +00:00
static void RemoveNotAdd(CEntity *entity, eWeaponType weaponType, CVector pos);
static bool RemoveIfThisIsAProjectile(CObject *pObject);
2020-01-12 11:31:04 +00:00
static void RemoveAllProjectiles();
2020-01-11 11:30:17 +00:00
static void Update();
2019-12-31 23:35:54 +00:00
static bool IsProjectileInRange(float x1, float x2, float y1, float y2, float z1, float z2, bool remove);
2020-01-07 15:26:23 +00:00
};
2020-01-12 11:31:04 +00:00
extern CProjectileInfo (&gaProjectileInfo)[NUM_PROJECTILES];