summaryrefslogtreecommitdiff
path: root/game/server/tf/tf_tactical_mission.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/tf/tf_tactical_mission.h')
-rw-r--r--game/server/tf/tf_tactical_mission.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/game/server/tf/tf_tactical_mission.h b/game/server/tf/tf_tactical_mission.h
new file mode 100644
index 0000000..21a6ecf
--- /dev/null
+++ b/game/server/tf/tf_tactical_mission.h
@@ -0,0 +1,81 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+// tf_tactical_mission.h
+// Team Fortress specific missions
+// Michael Booth, July 2009
+
+#ifndef TF_TACTICAL_MISSION_H
+#define TF_TACTICAL_MISSION_H
+
+#include "tactical_mission.h"
+#include "team_control_point_master.h"
+#include "fmtstr.h"
+
+class CTFDefendSetupGatesDeployZone : public CTacticalMissionZone
+{
+public:
+
+};
+
+class CTFDefendSetupGatesMission : public CTacticalMission
+{
+public:
+ CTFDefendSetupGatesMission( void );
+
+ virtual const CTacticalMissionZone *GetDeployZone( CBasePlayer *who ) const; // where give player should be during this mission
+ virtual const CTacticalMissionZone *GetObjectiveZone( void ) const; // control points, setup gates, sections of cart path, etc.
+ virtual const CTacticalMissionZone *GetEnemyZone( void ) const; // where we expect enemies to be during this mission
+
+ virtual const char *GetName( void ) const { return "DefendSetupGates"; } // return name of this mission
+};
+
+
+//---------------------------------------------------------------------------------------------
+class CTFDefendPointZone : public CTacticalMissionZone
+{
+public:
+ CTFDefendPointZone( CTeamControlPoint *point );
+};
+
+
+class CTFDefendPointSniperZone : public CTacticalMissionZone
+{
+public:
+ CTFDefendPointSniperZone( CTeamControlPoint *point );
+ virtual ~CTFDefendPointSniperZone( void ){}
+};
+
+
+class CTFDefendPointMission : public CTacticalMission
+{
+public:
+ CTFDefendPointMission( CTeamControlPoint *point );
+ ~CTFDefendPointMission( void );
+
+ virtual const CTacticalMissionZone *GetDeployZone( CBasePlayer *who ) const; // where give player should be during this mission
+ virtual const CTacticalMissionZone *GetObjectiveZone( void ) const; // control points, setup gates, sections of cart path, etc.
+ virtual const CTacticalMissionZone *GetEnemyZone( void ) const; // where we expect enemies to be during this mission
+
+ virtual const char *GetName( void ) const { return m_name; } // return name of this mission
+
+private:
+ CTeamControlPoint *m_point;
+
+ CTFDefendPointZone *m_defenseZone;
+ CTFDefendPointSniperZone *m_sniperZone;
+
+ CFmtStrN< 32 > m_name;
+};
+
+
+//---------------------------------------------------------------------------------------------
+/**
+ * The mission manager provides access to all available missions
+ */
+class CTFTacticalMissionManager : public CTacticalMissionManager
+{
+public:
+ virtual void OnServerActivate( void ); // Invoked when server loads a new map, after everything has been created/spawned
+ virtual void OnRoundRestart( void ); // invoked when a game round restarts
+};
+
+#endif // TF_TACTICAL_MISSION_H