1 /*
2  Copyright (c) 2013 yvt
3 
4  This file is part of OpenSpades.
5 
6  OpenSpades is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  OpenSpades is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with OpenSpades.  If not, see <http://www.gnu.org/licenses/>.
18 
19  */
20 
21 #pragma once
22 #include "IGameMode.h"
23 #include <Core/Math.h>
24 
25 namespace spades {
26 	namespace client {
27 		class World;
28 		class Player;
29 
30 		class CTFGameMode : public IGameMode {
31 		public:
32 			struct Team {
33 				unsigned int score;
34 				bool hasIntel;
35 				unsigned int carrier;
36 				Vector3 flagPos;
37 				Vector3 basePos;
38 			};
39 			int captureLimit;
40 
41 		private:
42 			Team teams[2];
43 
44 		public:
45 			CTFGameMode();
46 			~CTFGameMode();
47 
48 			Team &GetTeam(int t);
GetCaptureLimit()49 			int GetCaptureLimit() { return captureLimit; }
SetCaptureLimit(int v)50 			void SetCaptureLimit(int v) { captureLimit = v; }
51 
52 			bool PlayerHasIntel(World &world, Player &player);
53 		};
54 	}
55 }
56