Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 1535


Ignore:
Timestamp:
Jun 4, 2008, 8:54:43 PM (16 years ago)
Author:
rgrieder
Message:

merged input branch back to trunk

Location:
code/trunk
Files:
13 deleted
31 edited
24 copied

Legend:

Unmodified
Added
Removed
  • code/trunk/CMakeLists.txt

    r1505 r1535  
    6767# FIND_PACKAGE(CEGUI_OGRE)
    6868FIND_PACKAGE(ENet)
    69 FIND_PACKAGE(Boost REQUIRED thread)
    70 FIND_PACKAGE(Boost REQUIRED filesystem)
     69FIND_PACKAGE(Boost REQUIRED thread filesystem)
     70#FIND_PACKAGE(Boost REQUIRED filesystem)
    7171FIND_PACKAGE(OpenAL)
    7272FIND_PACKAGE(ALUT)
  • code/trunk/src/audio/AudioManager.h

    r1505 r1535  
    3535#include <string>
    3636
    37 #include "core/Tickable.h"
    38 
    3937namespace audio
    4038{
    41   class _AudioExport AudioManager : public orxonox::Tickable
     39  class _AudioExport AudioManager
    4240        {
    4341        public:
  • code/trunk/src/core/CMakeLists.txt

    r1505 r1535  
    44  ConfigFileManager.cc
    55  ConfigValueContainer.cc
    6   CoreSettings.cc
     6  Core.cc
    77  Error.cc
    88  Executor.cc
     
    1010  Identifier.cc
    1111  IdentifierDistributor.cc
    12   InputManager.cc
    13   KeyBinder.cc
    1412  OutputBuffer.cc
    15   InputBuffer.cc
    1613  Shell.cc
    1714  CommandExecutor.cc
     
    3027  SignalHandler.cc
    3128  TclBind.cc
    32   Tickable.cc
    3329  XMLPort.cc
    3430  TclThreadManager.cc
    3531  IRC.cc
     32
     33  input/Button.cc
     34  input/CalibratorCallback.cc
     35  input/HalfAxis.cc
     36  input/InputBuffer.cc
     37  input/InputCommands.cc
     38  input/InputManager.cc
     39  input/KeyBinder.cc
     40  input/KeyDetector.cc
     41
    3642  tolua/tolua_bind.cc
    3743)
  • code/trunk/src/core/CorePrereqs.h

    r1505 r1535  
    112112  class ConfigValueContainer;
    113113  class ConsoleCommand;
    114   class CoreSettings;
     114  class Core;
    115115  class Error;
    116116  class Executor;
     
    162162  // input
    163163  //class GUIInputHandler;
    164   class Calibrator;
     164  class BaseCommand;
     165  class BufferedParamCommand;
     166  class Button;
    165167  class CalibratorCallback;
     168  class HalfAxis;
    166169  class InputBuffer;
    167   class InputBufferListener;
    168170  class InputManager;
    169171  class JoyStickHandler;
     172  class MouseHandler;
    170173  class KeyBinder;
    171174  class KeyDetector;
    172   class MouseHandler;
    173 
     175  class KeyHandler;
     176  class ParamCommand;
     177  class SimpleCommand;
    174178}
    175179
  • code/trunk/src/core/Language.cc

    r1505 r1535  
    3636#include <fstream>
    3737
    38 #include "CoreSettings.h"
     38#include "Core.h"
    3939
    4040#include "Debug.h"
     
    245245    void Language::readTranslatedLanguageFile()
    246246    {
    247         COUT(4) << "Read translated language file (" << CoreSettings::getLanguage() << ")." << std::endl;
     247        COUT(4) << "Read translated language file (" << Core::getLanguage() << ")." << std::endl;
    248248
    249249        // Open the file
    250250        std::ifstream file;
    251         file.open(getFileName(CoreSettings::getLanguage()).c_str(), std::fstream::in);
     251        file.open(getFileName(Core::getLanguage()).c_str(), std::fstream::in);
    252252
    253253        if (!file.is_open())
    254254        {
    255255            COUT(1) << "An error occurred in Language.cc:" << std::endl;
    256             COUT(1) << "Error: Couldn't open file " << getFileName(CoreSettings::getLanguage()) << " to read the translated language entries!" << std::endl;
    257             CoreSettings::resetLanguage();
     256            COUT(1) << "Error: Couldn't open file " << getFileName(Core::getLanguage()) << " to read the translated language entries!" << std::endl;
     257            Core::resetLanguage();
    258258            COUT(3) << "Info: Reset language to " << this->defaultLanguage_ << "." << std::endl;
    259259            return;
     
    286286                else
    287287                {
    288                     COUT(2) << "Warning: Invalid language entry \"" << lineString << "\" in " << getFileName(CoreSettings::getLanguage()) << std::endl;
     288                    COUT(2) << "Warning: Invalid language entry \"" << lineString << "\" in " << getFileName(Core::getLanguage()) << std::endl;
    289289                }
    290290            }
  • code/trunk/src/core/Language.h

    r1505 r1535  
    113113    class _CoreExport Language
    114114    {
    115         friend class CoreSettings;
     115        friend class Core;
    116116
    117117        public:
  • code/trunk/src/core/OutputHandler.cc

    r1505 r1535  
    3333
    3434#include "OutputHandler.h"
    35 #include "CoreSettings.h"
     35#include "Core.h"
    3636#include "ConsoleCommand.h"
    3737#include "Shell.h"
     
    8383    int OutputHandler::getSoftDebugLevel(OutputHandler::OutputDevice device)
    8484    {
    85         return CoreSettings::getSoftDebugLevel(device);
     85        return Core::getSoftDebugLevel(device);
    8686    }
    8787
  • code/trunk/src/core/Shell.cc

    r1505 r1535  
    3131#include "CoreIncludes.h"
    3232#include "ConfigValueIncludes.h"
    33 #include "CoreSettings.h"
     33#include "Core.h"
    3434#include "ConsoleCommand.h"
    35 #include "InputInterfaces.h"
     35#include "input/InputInterfaces.h"
    3636
    3737#define SHELL_UPDATE_LISTENERS(function) \
     
    6767    Shell& Shell::createShell()
    6868    {
    69         int level = CoreSettings::getSoftDebugLevel(OutputHandler::LD_Shell);
    70         CoreSettings::setSoftDebugLevel(OutputHandler::LD_Shell, -1);
     69        int level = Core::getSoftDebugLevel(OutputHandler::LD_Shell);
     70        Core::setSoftDebugLevel(OutputHandler::LD_Shell, -1);
    7171        static Shell instance;
    72         CoreSettings::setSoftDebugLevel(OutputHandler::LD_Shell, level);
     72        Core::setSoftDebugLevel(OutputHandler::LD_Shell, level);
    7373        return instance;
    7474    }
  • code/trunk/src/core/Shell.h

    r1505 r1535  
    3636
    3737#include "OrxonoxClass.h"
    38 #include "InputBuffer.h"
     38#include "input/InputBuffer.h"
    3939#include "OutputBuffer.h"
    4040
  • code/trunk/src/core/TclThreadManager.h

    r1505 r1535  
    3030#define _TclThreadManager_H__
    3131
     32#include "CorePrereqs.h"
     33
    3234#include <queue>
    3335#include <map>
     
    3840#include <boost/thread/thread.hpp>
    3941
    40 #include "CorePrereqs.h"
    41 #include "Tickable.h"
    4242#include "cpptcl/CppTcl.h"
     43#include "core/OrxonoxClass.h"
    4344
    4445namespace orxonox
     
    6869    };
    6970
    70     class _CoreExport TclThreadManager : public Tickable
     71    class _CoreExport TclThreadManager : public OrxonoxClass
    7172    {
    7273        public:
  • code/trunk/src/network/Client.h

    r1534 r1535  
    4646#include <string>
    4747
    48 #include "core/Tickable.h"
    4948#include "ClientConnection.h"
    5049#include "PacketManager.h"
     
    6362  *
    6463  */
    65   class _NetworkExport Client : PacketDecoder, public orxonox::Tickable{
     64  class _NetworkExport Client : PacketDecoder{
    6665  public:
    6766   
  • code/trunk/src/network/Server.h

    r1534 r1535  
    4646#include <string>
    4747
    48 #include "core/Tickable.h"
    4948#include "PacketManager.h"
    5049
     
    5958  * It implements all functions necessary for a Server
    6059  */
    61   class _NetworkExport Server : public PacketDecoder, public orxonox::Tickable{
     60  class _NetworkExport Server : public PacketDecoder{
    6261  public:
    6362    static Server *createSingleton();
  • code/trunk/src/orxonox/CMakeLists.txt

    r1505 r1535  
    33  Main.cc
    44  Orxonox.cc
     5  Settings.cc
    56
    67  console/InGameConsole.cc
     
    2930  objects/SpaceShip.cc
    3031  objects/SpaceShipAI.cc
     32  objects/Tickable.cc
    3133  objects/WorldEntity.cc
    3234
  • code/trunk/src/orxonox/GraphicsEngine.cc

    r1511 r1535  
    2121 *
    2222 *   Author:
    23  *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007
     23 *      Reto Grieder
    2424 *   Co-authors:
    25  *      Reto Grieder
     25 *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007, Felix Schulthess
    2626 *
    2727 */
     
    3535#include "GraphicsEngine.h"
    3636
     37#include <OgreConfigFile.h>
     38#include <OgreException.h>
     39#include <OgreLogManager.h>
    3740#include <OgreRoot.h>
    38 #include <OgreException.h>
    39 #include <OgreConfigFile.h>
    40 #include <OgreLogManager.h>
     41#include <OgreSceneManager.h>
    4142#include <OgreTextureManager.h>
    42 #include "core/InputManager.h"
     43#include <OgreViewport.h>
     44
    4345#include "core/CoreIncludes.h"
    4446#include "core/ConfigValueIncludes.h"
    4547#include "core/Debug.h"
    4648#include "core/CommandExecutor.h"
    47 #include "core/TclBind.h"
     49#include "core/ConsoleCommand.h"
     50#include "core/input/InputManager.h"
     51
    4852#include "console/InGameConsole.h"
    49 
    50 #include "core/ConsoleCommand.h"
    51 #include <OgreSceneManager.h>
    52 #include <OgreCompositorManager.h>
    53 #include <OgreViewport.h>
     53#include "Settings.h"
     54
    5455
    5556namespace orxonox {
     
    7071    root_(0),
    7172    scene_(0),
    72     renderWindow_(0),
    73     //configPath_(""),
    74     dataPath_(""),
    75     ogreLogfile_("")
     73    renderWindow_(0)
    7674  {
    7775    RegisterObject(GraphicsEngine);
     
    8381  void GraphicsEngine::setConfigValues()
    8482  {
    85     SetConfigValue(dataPath_, "../../Media/").description("relative path to media data");
    86     SetConfigValue(ogreLogfile_, "ogre.log").description("Logfile for messages from Ogre. Use \"\" to suppress log file creation.");
     83    SetConfigValue(resourceFile_,    "resources.cfg").description("Location of the resources file in the data path.");
     84    SetConfigValue(ogreConfigFile_,  "ogre.cfg").description("Location of the Ogre config file");
     85    SetConfigValue(ogrePluginsFile_, "plugins.cfg").description("Location of the Ogre plugins file");
     86    SetConfigValue(ogreLogFile_,     "ogre.log").description("Logfile for messages from Ogre. \
     87                                                             Use \"\" to suppress log file creation.");
    8788    SetConfigValue(ogreLogLevelTrivial_ , 5).description("Corresponding orxonox debug level for ogre Trivial");
    8889    SetConfigValue(ogreLogLevelNormal_  , 4).description("Corresponding orxonox debug level for ogre Normal");
    8990    SetConfigValue(ogreLogLevelCritical_, 2).description("Corresponding orxonox debug level for ogre Critical");
    90 
    91     TclBind::getInstance().setDataPath(this->dataPath_);
    9291  }
    9392
     
    126125    @brief Creates the Ogre Root object and sets up the ogre log.
    127126  */
    128   bool GraphicsEngine::setup(std::string& dataPath)
     127  bool GraphicsEngine::setup()
    129128  {
    130129    CCOUT(3) << "Setting up..." << std::endl;
    131130    // temporary overwrite of dataPath, change ini file for permanent change
    132     if (dataPath != "")
    133       dataPath_ = dataPath;
    134     if (dataPath_ == "")
    135       return false;
    136     if (dataPath_[dataPath_.size() - 1] != '/')
    137       dataPath_ += "/";
    138 
    139     //TODO: Check if file exists (maybe not here)
    140 #if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC && defined(_DEBUG)
    141     std::string plugin_filename = "plugins_d.cfg";
    142 #else
    143     std::string plugin_filename = "plugins.cfg";
    144 #endif
    145131
    146132// TODO: LogManager doesn't work on specific systems. The why is unknown yet.
     
    154140    // create our own log that we can listen to
    155141    Ogre::Log *myLog;
    156     if (this->ogreLogfile_ == "")
     142    if (this->ogreLogFile_ == "")
    157143      myLog = logger->createLog("ogre.log", true, false, true);
    158144    else
    159       myLog = logger->createLog(this->ogreLogfile_, true, false, false);
     145      myLog = logger->createLog(this->ogreLogFile_, true, false, false);
    160146    CCOUT(4) << "Ogre Log created" << std::endl;
    161147
     
    167153    CCOUT(4) << "Creating Ogre Root..." << std::endl;
    168154
    169     root_ = new Ogre::Root(plugin_filename, "ogre.cfg", this->ogreLogfile_);
     155    if (ogrePluginsFile_ == "")
     156    {
     157      COUT(1) << "Error: Ogre plugins file set to \"\". Cannot load." << std::endl;
     158      return false;
     159    }
     160    if (ogreConfigFile_ == "")
     161    {
     162      COUT(1) << "Error: Ogre config file set to \"\". Cannot load." << std::endl;
     163      return false;
     164    }
     165    if (ogreLogFile_ == "")
     166    {
     167      COUT(1) << "Error: Ogre log file set to \"\". Cannot load." << std::endl;
     168      return false;
     169    }
     170
     171    try
     172    {
     173      root_ = new Ogre::Root(ogrePluginsFile_, ogreConfigFile_, ogreLogFile_);
     174    }
     175    catch (Ogre::Exception ex)
     176    {
     177      COUT(2) << "Error: There was an exception when creating Ogre Root." << std::endl;
     178      return false;
     179    }
     180
     181    if (!root_->getInstalledPlugins().size())
     182    {
     183      COUT(1) << "Error: No plugins declared. Cannot load Ogre." << std::endl;
     184      COUT(0) << "Is the plugins file correctly declared?" << std::endl;
     185      return false;
     186    }
    170187
    171188#if 0
     
    180197
    181198    // specify where Ogre has to look for resources. This call doesn't parse anything yet!
    182     declareRessourceLocations();
     199    if (!declareRessourceLocations())
     200      return false;
    183201
    184202    CCOUT(3) << "Set up done." << std::endl;
     
    186204  }
    187205
    188   void GraphicsEngine::declareRessourceLocations()
     206  bool GraphicsEngine::declareRessourceLocations()
    189207  {
    190208    CCOUT(4) << "Declaring Resources" << std::endl;
    191209    //TODO: Specify layout of data file and maybe use xml-loader
    192210    //TODO: Work with ressource groups (should be generated by a special loader)
     211
     212    if (resourceFile_ == "")
     213    {
     214      COUT(1) << "Error: Resource file set to \"\". Cannot load." << std::endl;
     215      return false;
     216    }
     217
    193218    // Load resource paths from data file using configfile ressource type
    194219    Ogre::ConfigFile cf;
    195     cf.load(dataPath_ + "resources.cfg");
     220    try
     221    {
     222      cf.load(Settings::getDataPath() + resourceFile_);
     223    }
     224    catch (Ogre::Exception ex)
     225    {
     226      COUT(1) << "Error: Could not load resources.cfg in path " << Settings::getDataPath() << std::endl;
     227      COUT(0) << "Have you forgotten to set the data path in orxnox.ini?" << std::endl;
     228      return false;
     229    }
    196230
    197231    // Go through all sections & settings in the file
     
    201235    while (seci.hasMoreElements())
    202236    {
    203       secName = seci.peekNextKey();
    204       Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
    205       Ogre::ConfigFile::SettingsMultiMap::iterator i;
    206       for (i = settings->begin(); i != settings->end(); ++i)
     237      try
    207238      {
    208         typeName = i->first; // for instance "FileSystem" or "Zip"
    209         archName = i->second; // name (and location) of archive
    210 
    211         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
    212                                            std::string(dataPath_ + archName),
    213                                            typeName, secName);
     239        secName = seci.peekNextKey();
     240        Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
     241        Ogre::ConfigFile::SettingsMultiMap::iterator i;
     242        for (i = settings->begin(); i != settings->end(); ++i)
     243        {
     244          typeName = i->first; // for instance "FileSystem" or "Zip"
     245          archName = i->second; // name (and location) of archive
     246
     247          Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
     248              std::string(Settings::getDataPath() + archName), typeName, secName);
     249        }
    214250      }
    215     }
     251      catch (Ogre::Exception ex)
     252      {
     253        COUT(2) << "Exception while reading resources.cfg. Proceeding.." << ex.getDescription() << std::endl;
     254      }
     255    }
     256    return true;
    216257  }
    217258
     
    223264
    224265    CCOUT(4) << "Creating render window" << std::endl;
    225     this->renderWindow_ = root_->initialise(true, "OrxonoxV2");
     266    try
     267    {
     268      this->renderWindow_ = root_->initialise(true, "OrxonoxV2");
     269    }
     270    catch (Ogre::Exception ex)
     271    {
     272      COUT(2) << "Error: There was an exception when initialising Ogre Root." << std::endl;
     273      return false;
     274    }
     275
    226276    if (!root_->isInitialised())
    227277    {
    228       CCOUT(2) << "Error: Creating Ogre root object failed" << std::endl;
     278      CCOUT(2) << "Error: Initialising Ogre root object failed." << std::endl;
    229279      return false;
    230280    }
  • code/trunk/src/orxonox/GraphicsEngine.h

    r1511 r1535  
    2121 *
    2222 *   Author:
    23  *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007
     23 *      Reto Grieder
    2424 *   Co-authors:
    25  *      Reto Grieder
     25 *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007, Felix Schulthess
    2626 *
    2727 */
     
    5656        public:
    5757            void setConfigValues();
    58             bool setup(std::string& dataPath);
    59             void declareRessourceLocations();
     58            bool setup();
     59            bool declareRessourceLocations();
    6060            bool loadRenderer();
    6161            bool initialiseResources();
     
    6565
    6666            Ogre::SceneManager* getSceneManager() { return scene_; }
    67             std::string& getDataPath() { return dataPath_; }
    6867
    6968            // several window properties
     
    9594                             bool, const std::string&);
    9695
    97             Ogre::Root*         root_;        //!< Ogre's root
    98             Ogre::SceneManager* scene_;       //!< scene manager of the game
    99             Ogre::RenderWindow* renderWindow_;//!< the current render window
    100             //bool               bOverwritePath_; //!< overwrites path
    101             //std::string         configPath_;  //!< path to config file
    102             std::string         dataPath_;    //!< path to data file
    103             std::string         ogreLogfile_; //!< log file name for Ogre log messages
    104             int ogreLogLevelTrivial_;         //!< Corresponding Orxonx debug level for LL_TRIVIAL
    105             int ogreLogLevelNormal_;          //!< Corresponding Orxonx debug level for LL_NORMAL
    106             int ogreLogLevelCritical_;        //!< Corresponding Orxonx debug level for LL_CRITICAL
     96            Ogre::Root*         root_;              //!< Ogre's root
     97            Ogre::SceneManager* scene_;             //!< scene manager of the game
     98            Ogre::RenderWindow* renderWindow_;      //!< the current render window
     99            std::string         resourceFile_;      //!< resources file name
     100            std::string         ogreConfigFile_;    //!< ogre config file name
     101            std::string         ogrePluginsFile_;   //!< ogre plugins file name
     102            std::string         ogreLogFile_;      //!< log file name for Ogre log messages
     103            int ogreLogLevelTrivial_;               //!< Corresponding Orxonx debug level for LL_TRIVIAL
     104            int ogreLogLevelNormal_;                //!< Corresponding Orxonx debug level for LL_NORMAL
     105            int ogreLogLevelCritical_;              //!< Corresponding Orxonx debug level for LL_CRITICAL
    107106    };
    108107}
  • code/trunk/src/orxonox/Main.cc

    r1505 r1535  
    8282    res = orx->init(argc, argv, macBundlePath());
    8383#else
    84     res = orx->init(argc, argv, "");
     84    res = orx->init(argc, argv);
    8585#endif
    8686
  • code/trunk/src/orxonox/Orxonox.cc

    r1534 r1535  
    2121 *
    2222 *   Author:
     23 *      Reto Grieder
     24 *   Co-authors:
    2325 *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007
    24  *   Co-authors:
    25  *      ...
    2626 *
    2727 */
     
    5757#include "core/Debug.h"
    5858#include "core/Loader.h"
    59 #include "core/Tickable.h"
    60 #include "core/InputManager.h"
     59#include "core/input/InputManager.h"
    6160#include "core/TclBind.h"
     61#include "core/Core.h"
    6262
    6363// audio
     
    7070// objects and tools
    7171#include "hud/HUD.h"
    72 #include <Ogre.h>
     72#include "objects/Tickable.h"
    7373
    7474#include "GraphicsEngine.h"
     75#include "Settings.h"
    7576
    7677// FIXME: is this really file scope?
    7778// globals for the server or client
    78 network::Client *client_g;
    79 network::Server *server_g;
     79network::Client *client_g = 0;
     80network::Server *server_g = 0;
    8081
    8182namespace orxonox
     
    166167   * @param path path to config (in home dir or something)
    167168   */
    168   bool Orxonox::init(int argc, char **argv, std::string path)
    169   {
    170     //TODO: find config file (assuming executable directory)
    171     //TODO: read config file
    172     //TODO: give config file to Ogre
     169  bool Orxonox::init(int argc, char **argv)
     170  {
     171#ifdef _DEBUG
     172    ConfigFileManager::getSingleton()->setFile(CFT_Settings, "orxonox_d.ini");
     173#else
     174    ConfigFileManager::getSingleton()->setFile(CFT_Settings, "orxonox.ini");
     175#endif
     176    Factory::createClassHierarchy();
     177
    173178    std::string mode;
    174     std::string dataPath;
     179    std::string tempDataPath;
    175180
    176181    ArgReader ar(argc, argv);
    177     ar.checkArgument("mode", mode, false);
    178     ar.checkArgument("data", dataPath, false);
    179     ar.checkArgument("ip", serverIp_, false);
    180     ar.checkArgument("port", serverPort_, false);
     182    ar.checkArgument("mode", &mode, false);
     183    ar.checkArgument("data", &tempDataPath, false);
     184    ar.checkArgument("ip",   &serverIp_, false);
     185    ar.checkArgument("port", &serverPort_, false);
    181186    if(ar.errorHandling())
     187    {
     188      COUT(1) << "Error while parsing command line arguments" << std::endl;
     189      COUT(1) << ar.getErrorString();
     190      COUT(0) << "Usage:" << std::endl << "orxonox [mode client|server|dedicated|standalone] "
     191        << "[--data PATH] [--ip IP] [--port PORT]" << std::endl;
    182192      return false;
     193    }
    183194
    184195    if (mode == "client")
     
    190201    else
    191202    {
    192       mode = "standalone";
     203      if (mode == "")
     204        mode = "standalone";
     205      if (mode != "standalone")
     206      {
     207        COUT(2) << "Warning: mode \"" << mode << "\" doesn't exist. "
     208          << "Defaulting to standalone" << std::endl;
     209        mode = "standalone";
     210      }
    193211      mode_ = STANDALONE;
    194212    }
    195213    COUT(3) << "Orxonox: Mode is " << mode << "." << std::endl;
     214
     215    if (tempDataPath != "")
     216    {
     217      if (tempDataPath[tempDataPath.size() - 1] != '/')
     218        tempDataPath += "/";
     219      Settings::tsetDataPath(tempDataPath);
     220    }
     221
     222    // initialise TCL
     223    TclBind::getInstance().setDataPath(Settings::getDataPath());
    196224
    197225    //if (mode_ == DEDICATED)
     
    202230    // procedure until the GUI is identical
    203231
    204     ConfigFileManager::getSingleton()->setFile(CFT_Settings, "orxonox.ini");
    205     Factory::createClassHierarchy();
    206 
    207232    ogre_ = &GraphicsEngine::getSingleton();
    208     if (!ogre_->setup(path))       // creates ogre root and other essentials
     233    if (!ogre_->setup())       // creates ogre root and other essentials
    209234      return false;
    210235
     
    421446      }
    422447
     448      // tick the core
     449      Core::tick((float)evt.timeSinceLastFrame);
    423450      // Call those objects that need the real time
    424451      for (Iterator<TickableReal> it = ObjectList<TickableReal>::start(); it; ++it)
     
    427454      for (Iterator<Tickable> it = ObjectList<Tickable>::start(); it; ++it)
    428455        it->tick((float)evt.timeSinceLastFrame * this->timefactor_);
     456      //AudioManager::tick();
     457      if (client_g)
     458        client_g->tick((float)evt.timeSinceLastFrame);
     459      if (server_g)
     460        server_g->tick((float)evt.timeSinceLastFrame);
    429461
    430462      // don't forget to call _fireFrameStarted in ogre to make sure
  • code/trunk/src/orxonox/Orxonox.h

    r1505 r1535  
    2121 *
    2222 *   Author:
    23  *      ...
     23 *      Reto Grieder
    2424 *   Co-authors:
    25  *      ...
     25 *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007
    2626 *
    2727 */
     
    5858  {
    5959    public:
    60       bool init(int argc, char **argv, std::string path);
     60      bool init(int argc, char **argv);
    6161      bool start();
    6262
  • code/trunk/src/orxonox/OrxonoxStableHeaders.h

    r1505 r1535  
    104104#include "core/Debug.h"
    105105//#include "core/Executor.h"
    106 #include "core/Tickable.h"
    107106//#include "core/XMLPort.h"
    108107
     
    111110#include "OrxonoxPrereqs.h"
    112111#include "tools/Timer.h"
     112#include "objects/Tickable.h"
    113113#include "objects/Model.h"
    114114#include "objects/WorldEntity.h"
  • code/trunk/src/orxonox/console/InGameConsole.cc

    r1505 r1535  
    4242#include "core/ConfigValueIncludes.h"
    4343#include "core/ConsoleCommand.h"
    44 #include "core/InputManager.h"
     44#include "core/input/InputManager.h"
    4545#include "util/Math.h"
    4646#include "GraphicsEngine.h"
  • code/trunk/src/orxonox/console/InGameConsole.h

    r1505 r1535  
    3636#include <OgreTextAreaOverlayElement.h>
    3737
    38 #include "core/Tickable.h"
    3938#include "core/Shell.h"
     39#include "objects/Tickable.h"
    4040
    4141
  • code/trunk/src/orxonox/hud/HUD.h

    r1505 r1535  
    3636#include <OgreTextAreaOverlayElement.h>
    3737#include <OgreSceneNode.h>
    38 #include "core/Tickable.h"
     38#include "objects/Tickable.h"
    3939#include "util/Math.h"
    4040
    4141namespace orxonox
    4242{
    43     class _OrxonoxExport HUD : public Tickable
     43    class _OrxonoxExport HUD : public TickableReal
    4444    {
    4545      private:
  • code/trunk/src/orxonox/hud/RadarOverlayElement.cc

    r1505 r1535  
    3535
    3636#include "GraphicsEngine.h"
    37 #include "core/Tickable.h"
    3837#include "core/ConsoleCommand.h"
     38#include "objects/Tickable.h"
    3939#include "objects/SpaceShip.h"
    4040#include "RadarObject.h"
  • code/trunk/src/orxonox/objects/SpaceShip.cc

    r1534 r1535  
    4242#include "core/Debug.h"
    4343#include "GraphicsEngine.h"
    44 #include "core/InputManager.h"
     44#include "core/input/InputManager.h"
    4545#include "particle/ParticleInterface.h"
    4646#include "Projectile.h"
  • code/trunk/src/orxonox/objects/SpaceShip.h

    r1534 r1535  
    3434
    3535#include "util/Math.h"
    36 #include "core/InputInterfaces.h"
    3736#include "Camera.h"
    3837#include "Model.h"
    39 #include "../tools/BillboardSet.h"
     38#include "tools/BillboardSet.h"
    4039
    4140namespace orxonox
  • code/trunk/src/orxonox/objects/WorldEntity.h

    r1505 r1535  
    3939#include "network/Synchronisable.h"
    4040#include "core/BaseObject.h"
    41 #include "core/Tickable.h"
     41#include "Tickable.h"
    4242#include "../tools/Mesh.h"
    4343
  • code/trunk/src/orxonox/tools/Timer.h

    r1505 r1535  
    6262
    6363#include "OrxonoxPrereqs.h"
    64 #include "core/CorePrereqs.h"
    65 #include "core/Tickable.h"
     64#include "objects/Tickable.h"
    6665
    6766namespace orxonox
  • code/trunk/src/util/ArgReader.cc

    r1505 r1535  
    2121 *
    2222 *   Author:
    23  *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007
     23 *      Reto Grieder
    2424 *   Co-authors:
    25  *      ...
     25 *      Benjamin Knecht <beni_at_orxonox.net>
    2626 *
    2727 */
     
    3333
    3434#include "ArgReader.h"
     35#include "SubString.h"
    3536
    36 #include <iostream>
     37ArgReader::ArgReader(int argc, char **argv)
     38{
     39  failure_ = false;
     40  errorString_ = "";
     41  CmdLineArg arg;
    3742
    38 ArgReader::ArgReader(int argc, char** argv)
    39 {
    40   counter_ = argc;
    41   arguments_ = argv;
    42   fail_ = false;
    43   errorStr_ = "";
    44 }
     43  int i = 1;
     44  while (i < argc)
     45  {
     46    if (argv[i][0] == '-' && argv[i][1] == '-') // name
     47    {
     48      if (argv[i][2] == '\0')
     49      {
     50        failure_ = true;
     51        errorString_ += "Expected word after \"--\".\n";
     52      }
     53      arg.bChecked_ = false;
     54      arg.name_ = argv[i] + 2;
     55      arg.value_ = "";
     56      arguments_.push_back(arg);
     57    }
     58    else // value
     59    {
     60      if (arguments_.size() == 0)
     61      {
     62        failure_ = true;
     63        errorString_ += "Expected \"--\" in command line arguments.\n";
     64        arg.bChecked_ = false;
     65        arg.name_ = "";
     66        arg.value_ = "";
     67        arguments_.push_back(arg);
     68      }
    4569
    46 void ArgReader::checkArgument(std::string option, std::string &string, bool must)
    47 {
    48   int argpos = checkOption(option) + 1;
    49   if(argpos != 0)
    50   {
    51     string = arguments_[argpos];
     70      if (arguments_.back().value_ != "")
     71        arguments_.back().value_ += " " + std::string(argv[i]);
     72      else
     73        arguments_.back().value_ = argv[i];
     74    }
     75    ++i;
    5276  }
    53   else
    54   {
    55     if(must) {
    56       errorStr_ = errorStr_ + "Cannot find mandatory argument \"" + option + "\"\n";
    57       fail_ = true;
    58     }
    59   }
    60 
    61 }
    62 
    63 void ArgReader::checkArgument(std::string option, int &integer, bool must)
    64 {
    65   int argpos = checkOption(option) + 1;
    66   if(argpos != 0)
    67   {
    68     integer = atoi(arguments_[argpos]);
    69   }
    70   else
    71   {
    72     if(must) {
    73       errorStr_ = errorStr_ + "Cannot find mandatory argument \"" + option + "\"\n";
    74       fail_ = true;
    75     }
    76   }
    77 }
    78 
    79 void ArgReader::checkArgument(std::string option, float &floating, bool must)
    80 {
    81   int argpos = checkOption(option) + 1;
    82   if(argpos != 0)
    83   {
    84     floating = (float)atof(arguments_[argpos]);
    85   }
    86   else
    87   {
    88     if(must) {
    89       errorStr_ = errorStr_ + "Cannot find mandatory argument \"" + option + "\"\n";
    90       fail_ = true;
    91     }
    92   }
    93 }
    94 
    95 int ArgReader::checkOption(std::string option)
    96 {
    97   for(int i = 1; i < counter_; i++)
    98   {
    99     if(arguments_[i] == "--" + option)
    100         return i;
    101   }
    102   return -1;
    10377}
    10478
    10579bool ArgReader::errorHandling()
    10680{
    107   if(fail_)
    108     std::cout << errorStr_;
    109   return fail_;
     81  bool argumentsChecked = true;
     82  for (unsigned int i = 1; i < arguments_.size(); ++i)
     83    argumentsChecked &= arguments_[i].bChecked_;
     84
     85  if (!argumentsChecked)
     86    errorString_ += "Not all arguments could be matched.\n";
     87
     88  return !argumentsChecked || failure_;
    11089}
     90
     91const std::string& ArgReader::getErrorString()
     92{
     93  return errorString_;
     94}
  • code/trunk/src/util/ArgReader.h

    r1505 r1535  
    2121 *
    2222 *   Author:
     23 *      Reto Grieder
     24 *   Co-authors:
    2325 *      Benjamin Knecht <beni_at_orxonox.net>
    24  *   Co-authors:
    25  *      ...
    2626 *
    2727 */
     
    3939
    4040#include <string>
     41#include <vector>
     42#include "Convert.h"
     43
     44struct _UtilExport CmdLineArg
     45{
     46  std::string name_;
     47  std::string value_;
     48  bool bChecked_;
     49};
    4150
    4251class _UtilExport ArgReader
     
    4453  public:
    4554    ArgReader(int argc, char **argv);
    46     void checkArgument(std::string option, std::string& string, bool must=false);
    47     void checkArgument(std::string option, int& integer, bool must=false);
    48     void checkArgument(std::string option, float& floating, bool must=false);
     55    template <class T>
     56    void checkArgument(std::string option, T* value, bool must = false);
    4957    bool errorHandling();
    50   private:
    51     int checkOption(std::string option);
     58    const std::string& getErrorString();
    5259
    5360  private:
    54     int counter_;
    55     char **arguments_;
    56     bool fail_;
    57     std::string errorStr_;
     61    std::vector<CmdLineArg> arguments_;
     62    bool failure_;
     63    std::string errorString_;
    5864};
    5965
     66template <class T>
     67void ArgReader::checkArgument(std::string option, T* value, bool must)
     68{
     69  unsigned int iArg = 0;
     70  while (iArg < arguments_.size())
     71  {
     72    if (arguments_[iArg].name_ == option)
     73      break;
     74    ++iArg;
     75  }
     76  if (iArg == arguments_.size())
     77  {
     78    if (must)
     79    {
     80      failure_ = true;
     81      errorString_ += "Cannot find mandatory argument \"" + option + "\"\n";
     82      return;
     83    }
     84    else
     85      return;
     86  }
     87
     88  arguments_[iArg].bChecked_ = true;
     89
     90  if (!convertValue(value, arguments_[iArg].value_))
     91  {
     92    failure_ = true;
     93    errorString_ += "Cannot convert argument value for option \"" + option + "\"\n";
     94  }
     95}
     96
     97template <>
     98void ArgReader::checkArgument(std::string option, bool* value, bool must)
     99{
     100  // for type bool, only check whether the option was set or not
     101  unsigned int iArg = 0;
     102  while (iArg < arguments_.size())
     103  {
     104    if (arguments_[iArg].name_ == option)
     105    {
     106      arguments_[iArg].bChecked_ = true;
     107      *value = true;
     108      break;
     109    }
     110    ++iArg;
     111  }
     112  if (iArg == arguments_.size())
     113    *value = false;
     114}
     115
    60116#endif /* _ArgReader_H__ */
  • code/trunk/visual_studio/vc8/core.vcproj

    r1502 r1535  
    157157                        </File>
    158158                        <File
    159                                 RelativePath="..\..\src\core\CoreSettings.cc"
     159                                RelativePath="..\..\src\core\Core.cc"
    160160                                >
    161161                        </File>
     
    188188                                >
    189189                        </File>
    190                         <File
    191                                 RelativePath="..\..\src\core\Tickable.cc"
    192                                 >
    193                         </File>
    194190                        <Filter
    195191                                Name="tolua"
     
    280276                                >
    281277                                <File
    282                                         RelativePath="..\..\src\core\InputBuffer.cc"
    283                                         >
    284                                 </File>
    285                                 <File
    286                                         RelativePath="..\..\src\core\InputManager.cc"
    287                                         >
    288                                 </File>
    289                                 <File
    290                                         RelativePath="..\..\src\core\KeyBinder.cc"
     278                                        RelativePath="..\..\src\core\input\Button.cc"
     279                                        >
     280                                </File>
     281                                <File
     282                                        RelativePath="..\..\src\core\input\CalibratorCallback.cc"
     283                                        >
     284                                </File>
     285                                <File
     286                                        RelativePath="..\..\src\core\input\HalfAxis.cc"
     287                                        >
     288                                </File>
     289                                <File
     290                                        RelativePath="..\..\src\core\input\InputBuffer.cc"
     291                                        >
     292                                </File>
     293                                <File
     294                                        RelativePath="..\..\src\core\input\InputCommands.cc"
     295                                        >
     296                                </File>
     297                                <File
     298                                        RelativePath="..\..\src\core\input\InputManager.cc"
     299                                        >
     300                                </File>
     301                                <File
     302                                        RelativePath="..\..\src\core\input\KeyBinder.cc"
     303                                        >
     304                                </File>
     305                                <File
     306                                        RelativePath="..\..\src\core\input\KeyDetector.cc"
    291307                                        >
    292308                                </File>
     
    331347                        </File>
    332348                        <File
     349                                RelativePath="..\..\src\core\Core.h"
     350                                >
     351                        </File>
     352                        <File
    333353                                RelativePath="..\..\src\core\CorePrereqs.h"
    334354                                >
    335355                        </File>
    336356                        <File
    337                                 RelativePath="..\..\src\core\CoreSettings.h"
    338                                 >
    339                         </File>
    340                         <File
    341357                                RelativePath="..\..\src\core\Debug.h"
    342358                                >
     
    374390                                >
    375391                        </File>
    376                         <File
    377                                 RelativePath="..\..\src\core\Tickable.h"
    378                                 >
    379                         </File>
    380392                        <Filter
    381393                                Name="input"
    382394                                >
    383395                                <File
    384                                         RelativePath="..\..\src\core\InputBuffer.h"
    385                                         >
    386                                 </File>
    387                                 <File
    388                                         RelativePath="..\..\src\core\InputInterfaces.h"
    389                                         >
    390                                 </File>
    391                                 <File
    392                                         RelativePath="..\..\src\core\InputManager.h"
    393                                         >
    394                                 </File>
    395                                 <File
    396                                         RelativePath="..\..\src\core\KeyBinder.h"
     396                                        RelativePath="..\..\src\core\input\Button.h"
     397                                        >
     398                                </File>
     399                                <File
     400                                        RelativePath="..\..\src\core\input\CalibratorCallback.h"
     401                                        >
     402                                </File>
     403                                <File
     404                                        RelativePath="..\..\src\core\input\HalfAxis.h"
     405                                        >
     406                                </File>
     407                                <File
     408                                        RelativePath="..\..\src\core\input\InputBuffer.h"
     409                                        >
     410                                </File>
     411                                <File
     412                                        RelativePath="..\..\src\core\input\InputCommands.h"
     413                                        >
     414                                </File>
     415                                <File
     416                                        RelativePath="..\..\src\core\input\InputInterfaces.h"
     417                                        >
     418                                </File>
     419                                <File
     420                                        RelativePath="..\..\src\core\input\InputManager.h"
     421                                        >
     422                                </File>
     423                                <File
     424                                        RelativePath="..\..\src\core\input\KeyBinder.h"
     425                                        >
     426                                </File>
     427                                <File
     428                                        RelativePath="..\..\src\core\input\KeyDetector.h"
    397429                                        >
    398430                                </File>
  • code/trunk/visual_studio/vc8/orxonox.vcproj

    r1502 r1535  
    184184                                </FileConfiguration>
    185185                        </File>
     186                        <File
     187                                RelativePath="..\..\src\orxonox\Settings.cc"
     188                                >
     189                        </File>
    186190                        <Filter
    187191                                Name="hud"
     
    253257                                <File
    254258                                        RelativePath="..\..\src\orxonox\objects\SpaceShipAI.cc"
     259                                        >
     260                                </File>
     261                                <File
     262                                        RelativePath="..\..\src\orxonox\objects\Tickable.cc"
    255263                                        >
    256264                                </File>
     
    466474                                >
    467475                        </File>
     476                        <File
     477                                RelativePath="..\..\src\orxonox\Settings.h"
     478                                >
     479                        </File>
    468480                        <Filter
    469481                                Name="hud"
     
    539551                                <File
    540552                                        RelativePath="..\..\src\orxonox\objects\SpaceShipAI.h"
     553                                        >
     554                                </File>
     555                                <File
     556                                        RelativePath="..\..\src\orxonox\objects\Tickable.h"
    541557                                        >
    542558                                </File>
Note: See TracChangeset for help on using the changeset viewer.