00001 00002 /* 00003 TSGL - Teddy Space Game Library 00004 Copyright (C) 2002 Timo Suoranta 00005 tksuoran@cc.helsinki.fi 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Lesser General Public 00009 License as published by the Free Software Foundation; either 00010 version 2.1 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public 00018 License along with this library; if not, write to the Free Software 00019 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 00021 $Id: Root.h,v 1.1 2002/01/08 20:47:05 tksuoran Exp $ 00022 */ 00023 00024 00025 #ifndef TEDDY__SPACE_GAME__ROOT_H 00026 #define TEDDY__SPACE_GAME__ROOT_H 00027 00028 00029 #include "Teddy/SpaceGame/ActionManager.h" 00030 #include "Teddy/SpaceGame/AudioManager.h" 00031 #include "Teddy/SpaceGame/EventManager.h" 00032 #include "Teddy/SpaceGame/ObjectManager.h" 00033 #include "Teddy/SpaceGame/SimulationTimer.h" 00034 #include "Teddy/SpaceGame/UserInterface.h" 00035 #include "Teddy/MixIn/Options.h" 00036 using namespace Teddy::MixIn; 00037 00038 00039 namespace Teddy { 00040 namespace SpaceGame { 00041 00042 00043 #define RO_RESERVED (1ul<<0ul) 00044 #define RO_MAKE_SCREENSHOTS (1ul<<1ul) 00045 #define RO_FULLSCREEN (1ul<<2ul) 00046 #define RO_MULTI_WINDOW (1ul<<3ul) 00047 #define RO_AUDIO (1ul<<4ul) 00048 #define RO_CABIN (1ul<<5ul) 00049 #define RO_HUD (1ul<<6ul) 00050 #define RO_SCANNER (1ul<<7ul) 00051 #define RO_DEBUG (1ul<<8ul) 00052 00053 00058 class Root : public Options { 00059 public: 00060 Root( int argc, char **argv ); 00061 00062 // Accessors 00063 ActionManager *getActionManager (); 00064 AudioManager *getAudioManager (); 00065 EventManager *getEventManager (); 00066 ObjectManager *getObjectManager (); 00067 SimulationTimer *getSimulationTimer(); 00068 UserInterface *getUserInterface (); 00069 int getScreenWidth (); 00070 int getScreenHeight (); 00071 00072 protected: 00073 void parseOptions( int argc, char **argv ); 00074 00075 protected: 00076 ActionManager *action_manager; 00077 AudioManager *audio_manager; 00078 EventManager *event_manager; 00079 ObjectManager *object_manager; 00080 SimulationTimer *simulation_timer; 00081 UserInterface *user_interface; 00082 int screen_width; 00083 int screen_height; 00084 }; 00085 00086 00087 }; // namespace SpaceGame 00088 }; // namespace Teddy 00089 00090 00091 #endif // TEDDY__SPACE_GAME__ROOT_H 00092