1 /*************************************************************************** 2 * Brutal Chess 3 * http://brutalchess.sf.net 4 * 5 * File : options.h 6 * Authors : Mike Cook, Joe Flint, Neil Pankey 7 **************************************************************************/ 8 9 #ifndef OPTIONS_H 10 #define OPTIONS_H 11 12 #include <map> 13 #include <string> 14 15 enum BoardType {GRANITE, WOOD}; 16 enum PiecesType {BASIC, DEBUG, QUAKE}; 17 enum PlayerType {BRUTAL, FAILE, HUMAN, RANDOM, TEST, XBOARD}; 18 enum Difficulty {EASY=2, MEDIUM=3, HARD=4}; 19 20 #define DEFAULT_PLY_DEPTH MEDIUM 21 22 // Keep things synced between menu events and this 23 enum Resolution {r640X480, r800X600, r1024X768, r1280X1024, r1400X1050, r1600X1200, }; 24 25 class Options { 26 public: 27 static Options* getInstance(); 28 29 bool animations, fullscreen, historyarrows, reflections, shadows; 30 BoardType board; 31 Difficulty player1diff, player2diff; 32 PiecesType pieces; 33 PlayerType player1, player2; 34 Resolution resolution; 35 36 // Won't need eventually 37 int brutalplayer1ply, brutalplayer2ply; 38 getBoardString()39 std::string getBoardString() 40 { return m_boardTypeString[board]; } 41 getPiecesString()42 std::string getPiecesString() 43 { return m_piecesTypeString[pieces]; } 44 getPlayer1String()45 std::string getPlayer1String() 46 { return m_playerTypeString[player1]; } 47 getPlayer1DiffString()48 std::string getPlayer1DiffString() 49 { return m_difficultyString[player1diff]; } 50 getPlayer2String()51 std::string getPlayer2String() 52 { return m_playerTypeString[player2]; } 53 getPlayer2DiffString()54 std::string getPlayer2DiffString() 55 { return m_difficultyString[player2diff]; } 56 getResolutionString()57 std::string getResolutionString() 58 { return m_resolutionString[resolution]; } 59 getResolutionHeight()60 int getResolutionHeight() 61 { return m_resolutionHeightInt[resolution]; } 62 getResolutionWidth()63 int getResolutionWidth() 64 { return m_resolutionWidthInt[resolution]; } 65 66 private: 67 68 Options(); 69 70 static Options* m_instance; 71 72 std::map<BoardType, std::string> m_boardTypeString; 73 std::map<PiecesType, std::string> m_piecesTypeString; 74 std::map<PlayerType, std::string> m_playerTypeString; 75 std::map<Difficulty, std::string> m_difficultyString; 76 std::map<Resolution, std::string> m_resolutionString; 77 std::map<Resolution, int> m_resolutionHeightInt; 78 std::map<Resolution, int> m_resolutionWidthInt; 79 }; 80 81 #endif 82 83 // end of file options.h 84