about summary refs log tree commit diff
path: root/src/game/server/gamemodes/ctf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server/gamemodes/ctf.h')
-rw-r--r--src/game/server/gamemodes/ctf.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/game/server/gamemodes/ctf.h b/src/game/server/gamemodes/ctf.h
new file mode 100644
index 00000000..b86ad688
--- /dev/null
+++ b/src/game/server/gamemodes/ctf.h
@@ -0,0 +1,38 @@
+#ifndef GAME_SERVER_GAMEMODES_CTF_H
+#define GAME_SERVER_GAMEMODES_CTF_H
+#include <game/server/gamecontroller.h>
+#include <game/server/entity.h>
+
+class CGameControllerCTF : public IGameController
+{
+public:
+	class CFlag *m_apFlags[2];
+	
+	CGameControllerCTF(class CGameContext *pGameServer);
+	virtual bool CanBeMovedOnBalance(int Cid);
+	virtual void Tick();
+	
+	virtual bool OnEntity(int Index, vec2 Pos);
+	virtual int OnCharacterDeath(class CCharacter *pVictim, class CPlayer *pKiller, int Weapon);
+};
+
+// TODO: move to seperate file
+class CFlag : public CEntity
+{
+public:
+	static const int m_PhysSize = 14;
+	CCharacter *m_pCarryingCCharacter;
+	vec2 m_Vel;
+	vec2 m_StandPos;
+	
+	int m_Team;
+	int m_AtStand;
+	int m_DropTick;
+	int m_GrabTick;
+	
+	CFlag(CGameWorld *pGameWorld, int Team);
+
+	virtual void Reset();
+	virtual void Snap(int SnappingClient);
+};
+#endif