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 #if !defined(__INCLUDE_ScorchedContexth_INCLUDE__) 22 #define __INCLUDE_ScorchedContexth_INCLUDE__ 23 24 class AccessoryStore; 25 class ActionController; 26 class TargetSpace; 27 class TargetContainer; 28 class TargetMovement; 29 class LandscapeMaps; 30 class ComsMessageHandler; 31 class NetInterface; 32 class OptionsScorched; 33 class OptionsTransient; 34 class ModFiles; 35 class LandscapeDefinitions; 36 class TargetContainer; 37 class TanketContainer; 38 class TankModelStore; 39 class TanketTypes; 40 class TankTeamScore; 41 class LUAScriptFactory; 42 class LUAScriptHook; 43 class Simulator; 44 class TankAIStrings; 45 class ObjectGroups; 46 47 class ScorchedContext 48 { 49 public: 50 ScorchedContext(const char *name); 51 virtual ~ScorchedContext(); 52 53 virtual bool getServerMode() = 0; 54 setNetInterface(NetInterface * i)55 void setNetInterface(NetInterface *i) { netInterface_ = i; } getNetInterface()56 NetInterface &getNetInterface() { return *netInterface_; } getNetInterfaceValid()57 bool getNetInterfaceValid() { return netInterface_ != 0; } 58 59 virtual TargetSpace &getTargetSpace() = 0; 60 virtual Simulator &getSimulator() = 0; getAccessoryStore()61 AccessoryStore &getAccessoryStore() { return *accessoryStore_; } getTargetContainer()62 TargetContainer &getTargetContainer() { return *targetContainer_; } getTargetMovement()63 TargetMovement &getTargetMovement() { return *targetMovement_; } getTankTeamScore()64 TankTeamScore &getTankTeamScore() { return *tankTeamScore_; } 65 ActionController &getActionController(); getLandscapeMaps()66 LandscapeMaps &getLandscapeMaps() { return *landscapeMaps_; } getOptionsGame()67 OptionsScorched &getOptionsGame() { return *optionsGame_; } getOptionsTransient()68 OptionsTransient &getOptionsTransient() { return *optionsTransient_; } getComsMessageHandler()69 ComsMessageHandler &getComsMessageHandler() { return *comsMessageHandler_; } getModFiles()70 ModFiles &getModFiles() { return *modFiles_; } getLandscapes()71 LandscapeDefinitions &getLandscapes() { return *landscapes_; } getTanketTypes()72 TanketTypes &getTanketTypes() { return *tanketTypes_; } getTankModels()73 TankModelStore &getTankModels() { return *tankModelStore_; } getLUAScriptFactory()74 LUAScriptFactory &getLUAScriptFactory() { return *luaScriptFactory_; } getLUAScriptHook()75 LUAScriptHook &getLUAScriptHook() { return *luaScriptHook_; } getTankAIStrings()76 TankAIStrings &getTankAIStrings() { return *tankAIStrings_; } getObjectGroups()77 ObjectGroups &getObjectGroups() { return *objectGroups_; } 78 79 protected: 80 LandscapeMaps *landscapeMaps_; 81 ComsMessageHandler *comsMessageHandler_; 82 NetInterface *netInterface_; 83 OptionsScorched *optionsGame_; 84 OptionsTransient *optionsTransient_; 85 ModFiles *modFiles_; 86 AccessoryStore *accessoryStore_; 87 LandscapeDefinitions *landscapes_; 88 TargetContainer *targetContainer_; 89 TankModelStore *tankModelStore_; 90 TankTeamScore *tankTeamScore_; 91 TanketTypes *tanketTypes_; 92 TargetMovement *targetMovement_; 93 LUAScriptFactory *luaScriptFactory_; 94 LUAScriptHook *luaScriptHook_; 95 TankAIStrings *tankAIStrings_; 96 ObjectGroups *objectGroups_; 97 }; 98 99 #endif 100