git-svn-id: https://scorched3d.svn.sourceforge.net/svnroot/scorched3d/trunk/scorched...
[scorched3d/parasti.git] / src / common / tank / TankState.h
blob494c836abc3fd964dd895c55a25fd552558c6524
1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
3 //
4 // This file is part of Scorched3D.
5 //
6 // Scorched3D 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 2 of the License, or
9 // (at your option) any later version.
11 // Scorched3D 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.
16 // You should have received a copy of the GNU General Public License
17 // along with Scorched3D; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ////////////////////////////////////////////////////////////////////////////////
21 #if !defined(__INCLUDE_TankStateh_INCLUDE__)
22 #define __INCLUDE_TankStateh_INCLUDE__
24 #include <net/NetBuffer.h>
26 class Tank;
27 class ScorchedContext;
28 class TankState
30 public:
31 enum State
33 sInitializing,
34 sLoading,
35 sPending,
36 sNormal,
37 sDead
40 enum ReadyState
42 sReady,
43 SNotReady
46 TankState(ScorchedContext &context, unsigned int playerId);
47 virtual ~TankState();
49 void setTank(Tank *tank) { tank_ = tank; }
51 // State Modifiers
52 void newGame();
53 void newMatch();
54 void clientNewGame();
56 // Ready State
57 void setReady() { readyState_ = sReady; }
58 void setNotReady() { readyState_ = SNotReady; }
59 ReadyState getReadyState() { return readyState_; }
61 // State
62 void setState(State s);
63 State getState() { return state_; }
64 void setSpectator(bool s) { spectator_ = s; }
65 bool getSpectator() { return spectator_; }
67 void setMuted(bool muted) { muted_ = muted; }
68 bool getMuted() { return muted_; }
69 void setSkipShots(bool skip) { skipshots_ = skip; }
70 bool getSkipShots() { return skipshots_; }
71 int getLives() { return lives_; }
72 void setLives(int lives) { lives_ = lives; }
73 int getMaxLives() { return maxLives_; }
74 void setDestroy(bool destroy) { destroy_ = destroy; }
75 bool getDestroy() { return destroy_; }
77 const char *getStateString();
78 const char *getSmallStateString();
79 LangString &getSmallStateLangString();
81 // Serialize the tank
82 bool writeMessage(NetBuffer &buffer);
83 bool readMessage(NetBufferReader &reader);
85 protected:
86 Tank *tank_;
87 ScorchedContext &context_;
88 State state_;
89 ReadyState readyState_;
90 int lives_, maxLives_;
91 bool spectator_;
92 bool muted_;
93 bool skipshots_;
94 bool destroy_;
98 #endif