Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7287 in orxonox.OLD for trunk/src/story_entities


Ignore:
Timestamp:
Apr 13, 2006, 10:41:48 PM (19 years ago)
Author:
bensch
Message:

merged back with:
svn merge . . -rHEAD:PREV

Location:
trunk/src/story_entities
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/story_entities/game_world.cc

    r7286 r7287  
    2020#include "game_world_data.h"
    2121
     22#include "util/loading/resource_manager.h"
    2223#include "state.h"
    2324#include "class_list.h"
     
    2627#include "util/loading/game_loader.h"
    2728
     29#include "p_node.h"
     30#include "world_entity.h"
    2831#include "player.h"
    2932#include "camera.h"
    3033#include "environment.h"
    3134#include "terrain.h"
     35#include "test_entity.h"
     36#include "terrain.h"
    3237#include "md2Model.h"
     38#include "world_entities/projectiles/projectile.h"
     39#include "npcs/npc_test1.h"
    3340#include "playable.h"
    3441
     
    4047#include "shell_command.h"
    4148
    42 #include "util/loading/resource_manager.h"
    4349#include "graphics_engine.h"
    4450#include "event_handler.h"
     
    4753#include "network_manager.h"
    4854#include "physics_engine.h"
     55#include "fields.h"
    4956
    5057#include "glmenu_imagescreen.h"
     
    96103  PRINTF(4)("Deleted GameWorld\n");
    97104
    98   this->bRunning = false;
    99   this->unloadData();
    100 
    101   if( this->dataTank)
    102     delete this->dataTank;
     105  if (this->audioThread != NULL)
     106    SDL_KillThread(this->audioThread);
    103107}
    104108
     
    136140  GameWorld* gw = (GameWorld*)gameWorld;
    137141  printf("STARTIG AUDIO THREAD\n");
    138   if(gw->dataTank != NULL && gw->dataTank->music != NULL)
    139     gw->dataTank->music->playback();
    140   SDL_Delay(100);
    141142  while (gw->bRunning)
    142143  {
    143     printf("PLAYBACK\n");
    144     ClassList::debug(3, CL_SOUND_OGG_PLAYER);
    145     if(gw->dataTank != NULL && gw->dataTank->music != NULL)
    146       gw->dataTank->music->update();
     144    if(gw->dataTank->music != NULL)
     145      gw->dataTank->music->playback();
    147146    SDL_Delay(5);
    148147  }
    149   printf("END the AudioThread\n");
     148  printf("End the AudioThread\n");
    150149}
    151150
     
    169168  }
    170169
    171   TiXmlDocument XMLDoc = TiXmlDocument( getLoadFile());
     170  TiXmlDocument* XMLDoc = new TiXmlDocument( getLoadFile());
    172171  // load the xml world file for further loading
    173   if( !XMLDoc.LoadFile())
    174   {
    175     PRINTF(1)("loading XML File: %s @ %s:l%d:c%d\n", XMLDoc.ErrorDesc(), this->getLoadFile().c_str(), XMLDoc.ErrorRow(), XMLDoc.ErrorCol());
     172  if( !XMLDoc->LoadFile())
     173  {
     174    PRINTF(1)("loading XML File: %s @ %s:l%d:c%d\n", XMLDoc->ErrorDesc(), this->getLoadFile().c_str(), XMLDoc->ErrorRow(), XMLDoc->ErrorCol());
     175    delete XMLDoc;
    176176    return (ErrorMessage){213,"XML File parsing error","GameWorld::load()"};
    177177  }
    178178  // check basic validity
    179   TiXmlElement* root = XMLDoc.RootElement();
     179  TiXmlElement* root = XMLDoc->RootElement();
    180180  assert( root != NULL);
    181181  if( root == NULL || root->Value() == NULL || strcmp( root->Value(), "WorldDataFile"))
     
    183183    // report an error
    184184    PRINTF(1)("Specified XML File is not an orxonox world data file (WorldDataFile element missing)\n");
     185    delete XMLDoc;
    185186    return (ErrorMessage){213,"Path not a WorldDataFile","GameWorld::load()"};
    186187  }
     
    189190  this->dataXML = (TiXmlElement*)root->Clone();
    190191
     192  delete XMLDoc;
    191193  this->releaseLoadScreen();
    192194}
     
    199201{
    200202  delete this->shell;
    201   this->shell = NULL;
    202   PRINTF(0)("GameWorld::~unloadData() - unloading the current GameWorld %s::%s\n", this->getClassName(), this->getName());
    203 
    204   if (this->audioThread != NULL)
    205   {
    206     this->bRunning = false;
    207     SDL_WaitThread(this->audioThread, NULL);
    208     this->audioThread = NULL;
    209   }
    210 
    211   ClassList::debug( 3, CL_GAME_WORLD_DATA);
     203  PRINTF(3)("GameWorld::~GameWorld() - unloading the current GameWorld\n");
    212204
    213205  this->dataTank->unloadData();
     
    215207  State::setCurrentStoryEntity(NULL);
    216208  if (this->dataXML)
    217   {
    218209    delete this->dataXML;
    219     this->dataXML = NULL;
    220   }
    221210}
    222211
     
    244233  PRINTF(3)("GameWorld::stop() - got stop signal\n");
    245234  this->bRunning = false;
     235
     236//  SDL_KillThread(this->audioThread);
     237  this->audioThread = NULL;
    246238}
    247239
     
    404396  PNode::getNullParent()->updateNode (this->dtS);
    405397  SoundEngine::getInstance()->update();
     398
     399  if (this->dataTank->music != NULL)
     400    this->dataTank->music->update();
    406401}
    407402
  • trunk/src/story_entities/game_world_data.cc

    r7286 r7287  
    2828#include "util/loading/game_loader.h"
    2929
     30#include "p_node.h"
    3031#include "world_entity.h"
    3132#include "player.h"
    3233#include "camera.h"
    3334#include "environment.h"
     35#include "terrain.h"
     36#include "test_entity.h"
     37#include "terrain.h"
    3438#include "skybox.h"
    35 #include "terrain.h"
     39#include "md2Model.h"
     40#include "world_entities/projectiles/projectile.h"
     41#include "npcs/npc_test1.h"
    3642#include "playable.h"
    3743
     
    119125 * @param root reference to the xml root element
    120126 */
    121 ErrorMessage GameWorldData::loadData(const TiXmlElement* root)
     127ErrorMessage GameWorldData::loadData(TiXmlElement* root)
    122128{
    123129  // load the parameters
     
    153159 * @param root reference to the xml root element
    154160 */
    155 ErrorMessage GameWorldData::loadGUI(const TiXmlElement* root)
    156 {
    157   const TiXmlElement* element = root->FirstChildElement("LoadScreen");
     161ErrorMessage GameWorldData::loadGUI(TiXmlElement* root)
     162{
     163  TiXmlElement* element = root->FirstChildElement("LoadScreen");
    158164  if( element == NULL)
    159165  {
     
    186192 * @param root reference to the xml root parameter
    187193 */
    188 ErrorMessage GameWorldData::loadWorldEntities(const TiXmlElement* root)
    189 {
    190   const TiXmlElement* element = root->FirstChildElement("WorldEntities");
     194ErrorMessage GameWorldData::loadWorldEntities(TiXmlElement* root)
     195{
     196  TiXmlElement* element = root->FirstChildElement("WorldEntities");
    191197
    192198  if( element == NULL)
     
    204210      if( created != NULL )
    205211        PRINTF(4)("Created a %s: %s\n", created->getClassName(), created->getName());
    206       else
    207       {
    208         PRINTF(2)("Unable to create a %s\n", element->Value());
    209         element = element->NextSiblingElement();
    210         continue;
    211       }
    212212
    213213      //todo do this more elegant
     
    310310 * @param root reference to the xml root element
    311311 */
    312 ErrorMessage GameWorldData::loadScene(const TiXmlElement* root)
     312ErrorMessage GameWorldData::loadScene(TiXmlElement* root)
    313313{
    314314  LoadParamXML(root, "LightManager", LightManager::getInstance(), LightManager, loadParams);
     
    342342  delete PhysicsEngine::getInstance();
    343343
    344   this->setSoundTrack("");
    345 
     344  if (this->music != NULL)
     345    this->setSoundTrack("");
     346  this->music = NULL;
    346347  /* stop the sound eninge */
    347348  SoundEngine::getInstance()->flushAllBuffers();
     
    356357{
    357358  if (this->music != NULL)
    358   {
    359     OggPlayer* oldMusic = this->music;
    360     this->music = NULL;
    361     delete oldMusic;
    362   }
    363 
    364 
    365   PRINTF(0)("Setting Sound Track to %s\n", name.c_str());
     359    delete this->music;
     360  this->music = NULL;
    366361
    367362  if (!name.empty())
     
    369364    PRINTF(3)("Setting Sound Track to %s\n", name.c_str());
    370365    std::string oggFile = ResourceManager::getFullName(name);
    371     OggPlayer* newMusic = new OggPlayer(oggFile);
    372     this->music = newMusic;
     366    this->music = new OggPlayer(oggFile);
    373367
    374368    //(OggPlayer*)ResourceManager::getInstance()->load(name, OGG, RP_LEVEL);
  • trunk/src/story_entities/game_world_data.h

    r7286 r7287  
    3838
    3939    virtual ErrorMessage init();
    40     virtual ErrorMessage loadData(const TiXmlElement* root);
     40    virtual ErrorMessage loadData(TiXmlElement* root);
    4141    virtual ErrorMessage unloadData();
    4242
     
    4646
    4747  protected:
    48     virtual ErrorMessage loadGUI(const TiXmlElement* root);
    49     virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
    50     virtual ErrorMessage loadScene(const TiXmlElement* root);
     48    virtual ErrorMessage loadGUI(TiXmlElement* root);
     49    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
     50    virtual ErrorMessage loadScene(TiXmlElement* root);
    5151
    5252    virtual ErrorMessage unloadGUI();
  • trunk/src/story_entities/multi_player_world.cc

    r7286 r7287  
    5757{
    5858  PRINTF(3)("MultiPlayerWorld::~MultiPlayerWorld() - deleting current world\n");
     59  if( this->dataTank)
     60    delete this->dataTank;
    5961}
    6062
  • trunk/src/story_entities/simple_game_menu.cc

    r7286 r7287  
    7979{
    8080  PRINTF(3)("SimpleGameMenu::~SimpleGameMenu() - deleting current world\n");
     81
     82  if( this->dataTank)
     83    delete this->dataTank;
    8184}
    8285
  • trunk/src/story_entities/single_player_world.cc

    r7286 r7287  
    5959{
    6060  PRINTF(3)("SinglePlayerWorld::~SinglePlayerWorld() - deleting current world\n");
     61
     62  if( this->dataTank)
     63    delete this->dataTank;
    6164}
    6265
Note: See TracChangeset for help on using the changeset viewer.