Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 13, 2008, 3:25:10 PM (16 years ago)
Author:
scheusso
Message:

sdfsdf

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network/src/orxonox/Orxonox.cc

    r871 r888  
    6363#include "network/Server.h"
    6464#include "network/Client.h"
    65 #include "network/NetworkFrameListener.h"
     65#include "network/NetworkPrereqs.h"
     66network::Client *client_g;
     67network::Server *server_g;
     68
    6669
    6770// objects
     
    97100        updateAI();
    98101
    99         if(mode_ == PRESENTATION)
    100           server_g->tick(evt.timeSinceLastFrame);
    101         else if(mode_ == CLIENT)
    102           client_g->tick(evt.timeSinceLastFrame);
     102//         if(mode_ == SERVER)
     103//           server_g->tick(evt.timeSinceLastFrame);
     104//         else if(mode_ == CLIENT)
     105//           client_g->tick(evt.timeSinceLastFrame);
    103106
    104107        usleep(10);
     
    162165    //TODO: give config file to Ogre
    163166    std::string mode;
    164 //     if(argc>=2)
    165 //       mode = std::string(argv[1]);
    166 //     else
    167 //       mode = "";
     167   
     168   
    168169    ArgReader ar = ArgReader(argc, argv);
    169170    ar.checkArgument("mode", mode, false);
    170171    ar.checkArgument("data", this->dataPath_, false);
    171172    ar.checkArgument("ip", serverIp_, false);
    172     //mode = "presentation";
    173173    if(ar.errorHandling()) die();
    174     if(mode == std::string("server"))
     174    if(mode == std::string("client"))
    175175    {
     176      mode_ = CLIENT;
     177      clientInit(path);
     178    }
     179    else if(mode== std::string("server")){
     180      mode_ = SERVER;
    176181      serverInit(path);
    177       mode_ = SERVER;
    178     }
    179     else if(mode == std::string("client"))
    180     {
    181       clientInit(path);
    182       mode_ = CLIENT;
    183     }
    184     else if(mode == std::string("presentation"))
    185     {
    186       serverInit(path);
    187       mode_ = PRESENTATION;
    188182    }
    189183    else{
     184      mode_ = STANDALONE;
    190185      standaloneInit(path);
    191       mode_ = STANDALONE;
    192     }
    193   }
    194 
     186    }
     187  }
     188
     189 
    195190  /**
    196191   * start modules
     
    198193  void Orxonox::start()
    199194  {
     195    switch(mode_){
     196    case CLIENT:
     197      clientStart();
     198      break;
     199    case SERVER:
     200      serverStart();
     201      break;
     202    default:
     203      standaloneStart();
     204    }
     205  }
     206 
     207  void Orxonox::clientStart(){
     208   
     209   
     210  }
     211 
     212  void Orxonox::serverStart(){
    200213    //TODO: start modules
    201214    ogre_->startRender();
     
    205218    setupScene();
    206219    setupInputSystem();
    207     if(mode_!=CLIENT){ // remove this in future ---- presentation hack
    208     }
    209     else
    210       std::cout << "client here" << std::endl;
     220   
    211221    createFrameListener();
    212     switch(mode_){
    213     case PRESENTATION:
    214       //ogre_->getRoot()->addFrameListener(new network::ServerFrameListener());
    215       //std::cout << "could not add framelistener" << std::endl;
    216       server_g->open();
    217       break;
    218     case CLIENT:
    219       client_g->establishConnection();
    220       break;
    221     case SERVER:
    222     case STANDALONE:
    223     default:
    224       break;
    225     }
     222    server_g->open();
     223   
     224    startRenderLoop();
     225  }
     226 
     227  void Orxonox::standaloneStart(){
     228    //TODO: start modules
     229    ogre_->startRender();
     230    //TODO: run engine
     231    Factory::createClassHierarchy();
     232    createScene();
     233    setupScene();
     234    setupInputSystem();
     235   
     236    createFrameListener();
     237   
    226238    startRenderLoop();
    227239  }
     
    246258  }
    247259
    248   void Orxonox::standaloneInit(std::string path)
    249   {
     260
     261  void Orxonox::serverInit(std::string path)
     262  {
     263    COUT(2) << "initialising server" << std::endl;
     264   
    250265    ogre_->setConfigPath(path);
    251266    ogre_->setup();
    252267    root_ = ogre_->getRoot();
    253268    if(!ogre_->load()) die(/* unable to load */);
    254 
    255     //defineResources();
    256     //setupRenderSystem();
    257     //createRenderWindow();
    258     //initializeResourceGroups();
    259     /*createScene();
    260     setupScene();
    261     setupInputSystem();
    262     createFrameListener();
    263     Factory::createClassHierarchy();
    264     startRenderLoop();*/
    265   }
    266 
    267   void Orxonox::playableServer(std::string path)
    268   {
    269     ogre_->setConfigPath(path);
    270     ogre_->setup();
    271     root_ = ogre_->getRoot();
    272     defineResources();
    273     setupRenderSystem();
    274     createRenderWindow();
    275     initializeResourceGroups();
    276     setupInputSystem();
    277     Factory::createClassHierarchy();
    278     createScene();
    279     setupScene();
    280     createFrameListener();
    281     try{
    282       server_g = new network::Server(); //!< add port and bindadress
    283       server_g->open(); //!< open server and create listener thread
    284       if(ogre_ && ogre_->getRoot())
    285         ogre_->getRoot()->addFrameListener(new network::ServerFrameListener()); // adds a framelistener for the server
    286       COUT(3) << "Info: network framelistener added" << std::endl;
    287     }
    288     catch(...)
    289     {
    290       COUT(1) << "Error: There was a problem initialising the server :(" << std::endl;
    291     }
    292     startRenderLoop();
    293   }
    294 
    295   void Orxonox::standalone(){
    296 
    297 
    298 
    299   }
    300 
    301   void Orxonox::serverInit(std::string path)
    302   {
    303     COUT(2) << "initialising server" << std::endl;
    304     ogre_->setConfigPath(path);
    305     ogre_->setup();
    306     server_g = new network::Server(); // FIXME add some settings if wanted
    307     if(!ogre_->load()) die(/* unable to load */);
    308     // FIXME add network framelistener
     269   
     270    server_g = new network::Server();
    309271  }
    310272
    311273  void Orxonox::clientInit(std::string path)
    312274  {
    313     COUT(2) << "initialising client" << std::endl;
     275    COUT(2) << "initialising client" << std::endl;\
     276   
    314277    ogre_->setConfigPath(path);
    315278    ogre_->setup();
     
    317280      client_g = new network::Client();
    318281    else
    319       client_g = new network::Client(serverIp_, 55556);
     282      client_g = new network::Client(serverIp_, NETWORK_PORT);
    320283    if(!ogre_->load()) die(/* unable to load */);
    321     ogre_->getRoot()->addFrameListener(new network::ClientFrameListener());
     284  }
     285 
     286  void Orxonox::standaloneInit(std::string path)
     287  {
     288    COUT(2) << "initialising standalone mode" << std::endl;
     289   
     290    ogre_->setConfigPath(path);
     291    ogre_->setup();
     292    root_ = ogre_->getRoot();
     293    if(!ogre_->load()) die(/* unable to load */);
    322294  }
    323295
Note: See TracChangeset for help on using the changeset viewer.