1 // ==============================================================
2 //	This file is part of Glest (www.glest.org)
3 //
4 //	Copyright (C) 2001-2008 Marti�o Figueroa
5 //
6 //	You can redistribute this code and/or modify it under
7 //	the terms of the GNU General Public License as published
8 //	by the Free Software Foundation; either version 2 of the
9 //	License, or (at your option) any later version
10 // ==============================================================
11 
12 #ifndef _GLEST_GAME_GAMESETTINGS_H_
13 #define _GLEST_GAME_GAMESETTINGS_H_
14 
15 #include "game_constants.h"
16 
17 namespace Glest{ namespace Game{
18 
19 // =====================================================
20 //	class GameSettings
21 // =====================================================
22 
23 class GameSettings{
24 private:
25 	string description;
26 	string map;
27 	string tileset;
28 	string tech;
29 	string scenario;
30 	string scenarioDir;
31 	string factionTypeNames[GameConstants::maxPlayers]; //faction names
32 
33 	ControlType factionControls[GameConstants::maxPlayers];
34 
35 	int thisFactionIndex;
36 	int factionCount;
37 	int teams[GameConstants::maxPlayers];
38 	int startLocationIndex[GameConstants::maxPlayers];
39 
40 	bool defaultUnits;
41 	bool defaultResources;
42 	bool defaultVictoryConditions;
43 
44 public:
45 	//get
getDescription()46 	const string &getDescription() const						{return description;}
getMap()47 	const string &getMap() const 								{return map;}
getTileset()48 	const string &getTileset() const							{return tileset;}
getTech()49 	const string &getTech() const								{return tech;}
getScenario()50 	const string &getScenario() const							{return scenario;}
getScenarioDir()51 	const string &getScenarioDir() const						{return scenarioDir;}
getFactionTypeName(int factionIndex)52 	const string &getFactionTypeName(int factionIndex) const	{return factionTypeNames[factionIndex];}
getFactionControl(int factionIndex)53 	ControlType getFactionControl(int factionIndex) const		{return factionControls[factionIndex];}
54 
getThisFactionIndex()55 	int getThisFactionIndex() const						{return thisFactionIndex;}
getFactionCount()56 	int getFactionCount() const							{return factionCount;}
getTeam(int factionIndex)57 	int getTeam(int factionIndex) const					{return teams[factionIndex];}
getStartLocationIndex(int factionIndex)58 	int getStartLocationIndex(int factionIndex) const	{return startLocationIndex[factionIndex];}
59 
getDefaultUnits()60 	bool getDefaultUnits() const				{return defaultUnits;}
getDefaultResources()61 	bool getDefaultResources() const			{return defaultResources;}
getDefaultVictoryConditions()62 	bool getDefaultVictoryConditions() const	{return defaultVictoryConditions;}
63 
64 	//set
setDescription(const string & description)65 	void setDescription(const string& description)						{this->description= description;}
setMap(const string & map)66 	void setMap(const string& map)										{this->map= map;}
setTileset(const string & tileset)67 	void setTileset(const string& tileset)								{this->tileset= tileset;}
setTech(const string & tech)68 	void setTech(const string& tech)									{this->tech= tech;}
setScenario(const string & scenario)69 	void setScenario(const string& scenario)							{this->scenario= scenario;}
setScenarioDir(const string & scenarioDir)70 	void setScenarioDir(const string& scenarioDir)						{this->scenarioDir= scenarioDir;}
71 
setFactionTypeName(int factionIndex,const string & factionTypeName)72 	void setFactionTypeName(int factionIndex, const string& factionTypeName)	{this->factionTypeNames[factionIndex]= factionTypeName;}
73 
setFactionControl(int factionIndex,ControlType controller)74 	void setFactionControl(int factionIndex, ControlType controller)			{this->factionControls[factionIndex]= controller;}
75 
setThisFactionIndex(int thisFactionIndex)76 	void setThisFactionIndex(int thisFactionIndex) 							{this->thisFactionIndex= thisFactionIndex;}
setFactionCount(int factionCount)77 	void setFactionCount(int factionCount)									{this->factionCount= factionCount;}
setTeam(int factionIndex,int team)78 	void setTeam(int factionIndex, int team)								{this->teams[factionIndex]= team;}
setStartLocationIndex(int factionIndex,int startLocationIndex)79 	void setStartLocationIndex(int factionIndex, int startLocationIndex)	{this->startLocationIndex[factionIndex]= startLocationIndex;}
80 
setDefaultUnits(bool defaultUnits)81 	void setDefaultUnits(bool defaultUnits) 						{this->defaultUnits= defaultUnits;}
setDefaultResources(bool defaultResources)82 	void setDefaultResources(bool defaultResources) 				{this->defaultResources= defaultResources;}
setDefaultVictoryConditions(bool defaultVictoryConditions)83 	void setDefaultVictoryConditions(bool defaultVictoryConditions) {this->defaultVictoryConditions= defaultVictoryConditions;}
84 };
85 
86 }}//end namespace
87 
88 #endif
89