1 ////////////////////////////////////////////////////////////////////////////////
2 //    Scorched3D (c) 2000-2011
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.
10 //
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.
15 //
16 //    You should have received a copy of the GNU General Public License along
17 //    with this program; if not, write to the Free Software Foundation, Inc.,
18 //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 ////////////////////////////////////////////////////////////////////////////////
20 
21 #ifndef _TankModelContainer_h
22 #define _TankModelContainer_h
23 
24 #include <net/NetBuffer.h>
25 
26 // The model used for this tank
27 class ScorchedContext;
28 class TankModel;
29 class Tank;
30 class TankModelContainer
31 {
32 public:
33 	TankModelContainer(ScorchedContext &context);
34 	virtual ~TankModelContainer();
35 
setTank(Tank * tank)36 	void setTank(Tank *tank) { tank_ = tank; }
37 
38 	TankModel *getTankModel();
39 
40 	void setTankModelName(const char *modelName);
41 
42 	// Serialize the modelid
43     bool writeMessage(NamedNetBuffer &buffer);
44     bool readMessage(NetBufferReader &reader);
45 
46 protected:
47 	ScorchedContext &context_;
48 	Tank *tank_;
49 	std::string modelName_;
50 	TankModel *tankModel_;
51 };
52 
53 #endif // _TankModelContainer_h
54