2020-04-09 20:50:24 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
class CEntity;
|
|
|
|
class CObject;
|
|
|
|
class CProjectile;
|
|
|
|
enum eWeaponType;
|
|
|
|
|
|
|
|
class CProjectileInfo
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
eWeaponType m_eWeaponType;
|
2020-04-16 00:56:15 +02:00
|
|
|
CEntity *m_pSource;
|
2020-04-09 20:50:24 +02:00
|
|
|
uint32 m_nExplosionTime;
|
|
|
|
bool m_bInUse;
|
|
|
|
CVector m_vecPos;
|
|
|
|
|
|
|
|
public:
|
2020-04-16 00:56:15 +02:00
|
|
|
static CProjectileInfo *GetProjectileInfo(int32 id);
|
|
|
|
static CProjectile *ms_apProjectile[NUM_PROJECTILES];
|
2020-04-09 20:50:24 +02:00
|
|
|
|
|
|
|
static void Initialise();
|
|
|
|
static void Shutdown();
|
|
|
|
static bool AddProjectile(CEntity *ped, eWeaponType weapon, CVector pos, float speed);
|
|
|
|
static void RemoveProjectile(CProjectileInfo *info, CProjectile *projectile);
|
|
|
|
static void RemoveNotAdd(CEntity *entity, eWeaponType weaponType, CVector pos);
|
|
|
|
static bool RemoveIfThisIsAProjectile(CObject *pObject);
|
|
|
|
static void RemoveAllProjectiles();
|
|
|
|
static void Update();
|
|
|
|
static bool IsProjectileInRange(float x1, float x2, float y1, float y2, float z1, float z2, bool remove);
|
|
|
|
};
|
|
|
|
|
2020-04-16 00:56:15 +02:00
|
|
|
extern CProjectileInfo gaProjectileInfo[NUM_PROJECTILES];
|