1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_CLIENT_PROJECTILE_DATA_H
4#define GAME_CLIENT_PROJECTILE_DATA_H
5
6#include <base/vmath.h>
7
8struct CNetObj_Projectile;
9struct CNetObj_DDRaceProjectile;
10struct CNetObj_DDNetProjectile;
11struct CNetObj_EntityEx;
12
13class CProjectileData
14{
15public:
16 vec2 m_StartPos;
17 vec2 m_StartVel;
18 int m_Type;
19 int m_StartTick;
20 bool m_ExtraInfo;
21 // The rest is only set if m_ExtraInfo is true.
22 int m_Owner;
23 bool m_Explosive;
24 int m_Bouncing;
25 bool m_Freeze;
26 int m_SwitchNumber;
27 // TuneZone is introduced locally
28 int m_TuneZone;
29};
30
31CProjectileData ExtractProjectileInfo(int NetObjType, const void *pData, class CGameWorld *pGameWorld, const CNetObj_EntityEx *pEntEx);
32CProjectileData ExtractProjectileInfoDDRace(const CNetObj_DDRaceProjectile *pProj, class CGameWorld *pGameWorld, const CNetObj_EntityEx *pEntEx);
33CProjectileData ExtractProjectileInfoDDNet(const CNetObj_DDNetProjectile *pProj);
34
35#endif // GAME_CLIENT_PROJECTILE_DATA_H
36