summaryrefslogtreecommitdiff
path: root/src/weapons/ProjectileInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/weapons/ProjectileInfo.h')
-rw-r--r--src/weapons/ProjectileInfo.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/weapons/ProjectileInfo.h b/src/weapons/ProjectileInfo.h
new file mode 100644
index 0000000..d168894
--- /dev/null
+++ b/src/weapons/ProjectileInfo.h
@@ -0,0 +1,34 @@
+#pragma once
+
+#include "WeaponType.h"
+
+class CEntity;
+class CObject;
+class CProjectile;
+
+class CProjectileInfo
+{
+public:
+ eWeaponType m_eWeaponType;
+ CEntity *m_pSource;
+ uint32 m_nExplosionTime;
+ bool m_bInUse;
+ CVector m_vecPos;
+
+public:
+ static CProjectileInfo *GetProjectileInfo(int32 id);
+ static CProjectile *ms_apProjectile[NUM_PROJECTILES];
+
+ 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 RemoveDetonatorProjectiles();
+ static void Update();
+ static bool IsProjectileInRange(float x1, float x2, float y1, float y2, float z1, float z2, bool remove);
+};
+
+extern CProjectileInfo gaProjectileInfo[NUM_PROJECTILES]; \ No newline at end of file