Changeset 7287 in orxonox.OLD for trunk/src/story_entities/game_world.cc
- Timestamp:
- Apr 13, 2006, 10:41:48 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/story_entities/game_world.cc
r7286 r7287 20 20 #include "game_world_data.h" 21 21 22 #include "util/loading/resource_manager.h" 22 23 #include "state.h" 23 24 #include "class_list.h" … … 26 27 #include "util/loading/game_loader.h" 27 28 29 #include "p_node.h" 30 #include "world_entity.h" 28 31 #include "player.h" 29 32 #include "camera.h" 30 33 #include "environment.h" 31 34 #include "terrain.h" 35 #include "test_entity.h" 36 #include "terrain.h" 32 37 #include "md2Model.h" 38 #include "world_entities/projectiles/projectile.h" 39 #include "npcs/npc_test1.h" 33 40 #include "playable.h" 34 41 … … 40 47 #include "shell_command.h" 41 48 42 #include "util/loading/resource_manager.h"43 49 #include "graphics_engine.h" 44 50 #include "event_handler.h" … … 47 53 #include "network_manager.h" 48 54 #include "physics_engine.h" 55 #include "fields.h" 49 56 50 57 #include "glmenu_imagescreen.h" … … 96 103 PRINTF(4)("Deleted GameWorld\n"); 97 104 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); 103 107 } 104 108 … … 136 140 GameWorld* gw = (GameWorld*)gameWorld; 137 141 printf("STARTIG AUDIO THREAD\n"); 138 if(gw->dataTank != NULL && gw->dataTank->music != NULL)139 gw->dataTank->music->playback();140 SDL_Delay(100);141 142 while (gw->bRunning) 142 143 { 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(); 147 146 SDL_Delay(5); 148 147 } 149 printf("E NDthe AudioThread\n");148 printf("End the AudioThread\n"); 150 149 } 151 150 … … 169 168 } 170 169 171 TiXmlDocument XMLDoc =TiXmlDocument( getLoadFile());170 TiXmlDocument* XMLDoc = new TiXmlDocument( getLoadFile()); 172 171 // 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; 176 176 return (ErrorMessage){213,"XML File parsing error","GameWorld::load()"}; 177 177 } 178 178 // check basic validity 179 TiXmlElement* root = XMLDoc .RootElement();179 TiXmlElement* root = XMLDoc->RootElement(); 180 180 assert( root != NULL); 181 181 if( root == NULL || root->Value() == NULL || strcmp( root->Value(), "WorldDataFile")) … … 183 183 // report an error 184 184 PRINTF(1)("Specified XML File is not an orxonox world data file (WorldDataFile element missing)\n"); 185 delete XMLDoc; 185 186 return (ErrorMessage){213,"Path not a WorldDataFile","GameWorld::load()"}; 186 187 } … … 189 190 this->dataXML = (TiXmlElement*)root->Clone(); 190 191 192 delete XMLDoc; 191 193 this->releaseLoadScreen(); 192 194 } … … 199 201 { 200 202 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"); 212 204 213 205 this->dataTank->unloadData(); … … 215 207 State::setCurrentStoryEntity(NULL); 216 208 if (this->dataXML) 217 {218 209 delete this->dataXML; 219 this->dataXML = NULL;220 }221 210 } 222 211 … … 244 233 PRINTF(3)("GameWorld::stop() - got stop signal\n"); 245 234 this->bRunning = false; 235 236 // SDL_KillThread(this->audioThread); 237 this->audioThread = NULL; 246 238 } 247 239 … … 404 396 PNode::getNullParent()->updateNode (this->dtS); 405 397 SoundEngine::getInstance()->update(); 398 399 if (this->dataTank->music != NULL) 400 this->dataTank->music->update(); 406 401 } 407 402
Note: See TracChangeset
for help on using the changeset viewer.