diff options
Diffstat (limited to 'src/engine.cpp')
-rw-r--r-- | src/engine.cpp | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/src/engine.cpp b/src/engine.cpp deleted file mode 100644 index 65a9ed83..00000000 --- a/src/engine.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - * The Mana World - * Copyright (C) 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "engine.h" - -#include "beingmanager.h" -#include "flooritemmanager.h" -#include "game.h" -#include "localplayer.h" -#include "log.h" -#include "map.h" -#include "particle.h" -#include "sound.h" - -#include "gui/gui.h" -#include "gui/minimap.h" -#include "gui/okdialog.h" -#include "gui/viewport.h" - -#include "net/gamehandler.h" -#include "net/net.h" - -#include "resources/mapreader.h" -#include "resources/monsterdb.h" -#include "resources/resourcemanager.h" - -#include "utils/gettext.h" -#include "utils/stringutils.h" - -#include <assert.h> - -Engine::Engine(): - mCurrentMap(0), mMapName("") -{ -} - -Engine::~Engine() -{ - delete mCurrentMap; - map_path = ""; -} - -void Engine::changeMap(const std::string &mapPath) -{ - // Clean up floor items, beings and particles - floorItemManager->clear(); - beingManager->clear(); - - // Close the popup menu on map change so that invalid options can't be - // executed. - viewport->closePopupMenu(); - - // Unset the map of the player so that its particles are cleared before - // being deleted in the next step - if (player_node) - player_node->setMap(0); - - particleEngine->clear(); - - mMapName = mapPath; - - // Store full map path in global var - map_path = "maps/" + mapPath + ".tmx"; - ResourceManager *resman = ResourceManager::getInstance(); - if (!resman->exists(map_path)) - map_path += ".gz"; - - // Attempt to load the new map - Map *newMap = MapReader::readMap(map_path); - - if (!newMap) - { - logger->log("Error while loading %s", map_path.c_str()); - new OkDialog(_("Could Not Load Map"), - strprintf(_("Error while loading %s"), map_path.c_str())); - } - - // Notify the minimap and beingManager about the map change - minimap->setMap(newMap); - beingManager->setMap(newMap); - particleEngine->setMap(newMap); - viewport->setMap(newMap); - - // Initialize map-based particle effects - if (newMap) - newMap->initializeParticleEffects(particleEngine); - - // Start playing new music file when necessary - std::string oldMusic = mCurrentMap ? mCurrentMap->getMusicFile() : ""; - std::string newMusic = newMap ? newMap->getMusicFile() : ""; - if (newMusic != oldMusic) - sound.playMusic(newMusic); - - delete mCurrentMap; - mCurrentMap = newMap; - - Net::getGameHandler()->mapLoaded(mapPath); -} - -void Engine::logic() -{ - beingManager->logic(); - particleEngine->update(); - gui->logic(); -} |