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