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