Changeset 7286 in orxonox.OLD for trunk/src/story_entities
- Timestamp:
- Apr 13, 2006, 10:33:49 PM (19 years ago)
- Location:
- trunk/src/story_entities
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/story_entities/game_world.cc
r7283 r7286 20 20 #include "game_world_data.h" 21 21 22 #include "util/loading/resource_manager.h"23 22 #include "state.h" 24 23 #include "class_list.h" … … 27 26 #include "util/loading/game_loader.h" 28 27 29 #include "p_node.h"30 #include "world_entity.h"31 28 #include "player.h" 32 29 #include "camera.h" 33 30 #include "environment.h" 34 31 #include "terrain.h" 35 #include "test_entity.h"36 #include "terrain.h"37 32 #include "md2Model.h" 38 #include "world_entities/projectiles/projectile.h"39 #include "npcs/npc_test1.h"40 33 #include "playable.h" 41 34 … … 47 40 #include "shell_command.h" 48 41 42 #include "util/loading/resource_manager.h" 49 43 #include "graphics_engine.h" 50 44 #include "event_handler.h" … … 53 47 #include "network_manager.h" 54 48 #include "physics_engine.h" 55 #include "fields.h"56 49 57 50 #include "glmenu_imagescreen.h" … … 103 96 PRINTF(4)("Deleted GameWorld\n"); 104 97 105 if (this->audioThread != NULL) 106 SDL_KillThread(this->audioThread); 98 this->bRunning = false; 99 this->unloadData(); 100 101 if( this->dataTank) 102 delete this->dataTank; 107 103 } 108 104 … … 140 136 GameWorld* gw = (GameWorld*)gameWorld; 141 137 printf("STARTIG AUDIO THREAD\n"); 138 if(gw->dataTank != NULL && gw->dataTank->music != NULL) 139 gw->dataTank->music->playback(); 140 SDL_Delay(100); 142 141 while (gw->bRunning) 143 142 { 144 if(gw->dataTank->music != NULL) 145 gw->dataTank->music->playback(); 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(); 146 147 SDL_Delay(5); 147 148 } 148 printf("E ndthe AudioThread\n");149 printf("END the AudioThread\n"); 149 150 } 150 151 … … 168 169 } 169 170 170 TiXmlDocument * XMLDoc = newTiXmlDocument( getLoadFile());171 TiXmlDocument XMLDoc = TiXmlDocument( getLoadFile()); 171 172 // load the xml world file for further loading 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; 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()); 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;186 185 return (ErrorMessage){213,"Path not a WorldDataFile","GameWorld::load()"}; 187 186 } … … 190 189 this->dataXML = (TiXmlElement*)root->Clone(); 191 190 192 delete XMLDoc;193 191 this->releaseLoadScreen(); 194 192 } … … 201 199 { 202 200 delete this->shell; 203 PRINTF(3)("GameWorld::~GameWorld() - unloading the current GameWorld\n"); 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); 204 212 205 213 this->dataTank->unloadData(); … … 207 215 State::setCurrentStoryEntity(NULL); 208 216 if (this->dataXML) 217 { 209 218 delete this->dataXML; 219 this->dataXML = NULL; 220 } 210 221 } 211 222 … … 233 244 PRINTF(3)("GameWorld::stop() - got stop signal\n"); 234 245 this->bRunning = false; 235 236 // SDL_KillThread(this->audioThread);237 this->audioThread = NULL;238 246 } 239 247 … … 396 404 PNode::getNullParent()->updateNode (this->dtS); 397 405 SoundEngine::getInstance()->update(); 398 399 if (this->dataTank->music != NULL)400 this->dataTank->music->update();401 406 } 402 407 -
trunk/src/story_entities/game_world_data.cc
r7221 r7286 28 28 #include "util/loading/game_loader.h" 29 29 30 #include "p_node.h"31 30 #include "world_entity.h" 32 31 #include "player.h" 33 32 #include "camera.h" 34 33 #include "environment.h" 34 #include "skybox.h" 35 35 #include "terrain.h" 36 #include "test_entity.h"37 #include "terrain.h"38 #include "skybox.h"39 #include "md2Model.h"40 #include "world_entities/projectiles/projectile.h"41 #include "npcs/npc_test1.h"42 36 #include "playable.h" 43 37 … … 125 119 * @param root reference to the xml root element 126 120 */ 127 ErrorMessage GameWorldData::loadData( TiXmlElement* root)121 ErrorMessage GameWorldData::loadData(const TiXmlElement* root) 128 122 { 129 123 // load the parameters … … 159 153 * @param root reference to the xml root element 160 154 */ 161 ErrorMessage GameWorldData::loadGUI( TiXmlElement* root)162 { 163 TiXmlElement* element = root->FirstChildElement("LoadScreen");155 ErrorMessage GameWorldData::loadGUI(const TiXmlElement* root) 156 { 157 const TiXmlElement* element = root->FirstChildElement("LoadScreen"); 164 158 if( element == NULL) 165 159 { … … 192 186 * @param root reference to the xml root parameter 193 187 */ 194 ErrorMessage GameWorldData::loadWorldEntities( TiXmlElement* root)195 { 196 TiXmlElement* element = root->FirstChildElement("WorldEntities");188 ErrorMessage GameWorldData::loadWorldEntities(const TiXmlElement* root) 189 { 190 const TiXmlElement* element = root->FirstChildElement("WorldEntities"); 197 191 198 192 if( element == NULL) … … 210 204 if( created != NULL ) 211 205 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 } 212 212 213 213 //todo do this more elegant … … 310 310 * @param root reference to the xml root element 311 311 */ 312 ErrorMessage GameWorldData::loadScene( TiXmlElement* root)312 ErrorMessage GameWorldData::loadScene(const TiXmlElement* root) 313 313 { 314 314 LoadParamXML(root, "LightManager", LightManager::getInstance(), LightManager, loadParams); … … 342 342 delete PhysicsEngine::getInstance(); 343 343 344 if (this->music != NULL) 345 this->setSoundTrack(""); 346 this->music = NULL; 344 this->setSoundTrack(""); 345 347 346 /* stop the sound eninge */ 348 347 SoundEngine::getInstance()->flushAllBuffers(); … … 357 356 { 358 357 if (this->music != NULL) 359 delete this->music; 360 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()); 361 366 362 367 if (!name.empty()) … … 364 369 PRINTF(3)("Setting Sound Track to %s\n", name.c_str()); 365 370 std::string oggFile = ResourceManager::getFullName(name); 366 this->music = new OggPlayer(oggFile); 371 OggPlayer* newMusic = new OggPlayer(oggFile); 372 this->music = newMusic; 367 373 368 374 //(OggPlayer*)ResourceManager::getInstance()->load(name, OGG, RP_LEVEL); -
trunk/src/story_entities/game_world_data.h
r7221 r7286 38 38 39 39 virtual ErrorMessage init(); 40 virtual ErrorMessage loadData( TiXmlElement* root);40 virtual ErrorMessage loadData(const TiXmlElement* root); 41 41 virtual ErrorMessage unloadData(); 42 42 … … 46 46 47 47 protected: 48 virtual ErrorMessage loadGUI( TiXmlElement* root);49 virtual ErrorMessage loadWorldEntities( TiXmlElement* root);50 virtual ErrorMessage loadScene( TiXmlElement* root);48 virtual ErrorMessage loadGUI(const TiXmlElement* root); 49 virtual ErrorMessage loadWorldEntities(const TiXmlElement* root); 50 virtual ErrorMessage loadScene(const TiXmlElement* root); 51 51 52 52 virtual ErrorMessage unloadGUI(); -
trunk/src/story_entities/multi_player_world.cc
r7193 r7286 57 57 { 58 58 PRINTF(3)("MultiPlayerWorld::~MultiPlayerWorld() - deleting current world\n"); 59 if( this->dataTank)60 delete this->dataTank;61 59 } 62 60 -
trunk/src/story_entities/simple_game_menu.cc
r7221 r7286 79 79 { 80 80 PRINTF(3)("SimpleGameMenu::~SimpleGameMenu() - deleting current world\n"); 81 82 if( this->dataTank)83 delete this->dataTank;84 81 } 85 82 -
trunk/src/story_entities/single_player_world.cc
r7193 r7286 59 59 { 60 60 PRINTF(3)("SinglePlayerWorld::~SinglePlayerWorld() - deleting current world\n"); 61 62 if( this->dataTank)63 delete this->dataTank;64 61 } 65 62
Note: See TracChangeset
for help on using the changeset viewer.