summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-09-25 03:15:26 +0200
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-09-25 03:15:26 +0200
commit661d16e98c62dfff40f481177bf3f1a0c58c2124 (patch)
treea415866c4c94a0a0c53045a47220ca413ae9c5c9 /src/game.cpp
parent758d80263b1647c712c0e0cdd3dfca9945a1bb7e (diff)
parent7d0738df0d139af3175fcc1fec5b9be4a467f4f4 (diff)
downloadmana-661d16e98c62dfff40f481177bf3f1a0c58c2124.tar.gz
mana-661d16e98c62dfff40f481177bf3f1a0c58c2124.tar.bz2
mana-661d16e98c62dfff40f481177bf3f1a0c58c2124.tar.xz
mana-661d16e98c62dfff40f481177bf3f1a0c58c2124.zip
Merge branch '1.0'
Conflicts: src/actorspritemanager.h src/beingmanager.cpp src/game.cpp src/gui/beingpopup.cpp src/gui/chat.cpp src/gui/chat.h src/gui/inventorywindow.h src/gui/itempopup.cpp src/gui/socialwindow.cpp src/gui/statuswindow.cpp src/gui/widgets/chattab.cpp src/gui/widgets/chattab.h src/net/tmwa/inventoryhandler.cpp src/net/tmwa/partyhandler.cpp src/party.cpp src/sound.cpp src/utils/stringutils.cpp src/utils/stringutils.h
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 9035ba6a..b50d0629 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -152,14 +152,14 @@ static void createGuiWindows()
setupWindow->clearWindowsForReset();
// Create dialogs
+ miniStatusWindow = new MiniStatusWindow;
+ minimap = new Minimap;
chatWindow = new ChatWindow;
tradeWindow = new TradeWindow;
equipmentWindow = new EquipmentWindow(PlayerInfo::getEquipment());
statusWindow = new StatusWindow;
- miniStatusWindow = new MiniStatusWindow;
inventoryWindow = new InventoryWindow(PlayerInfo::getInventory());
skillDialog = new SkillDialog;
- minimap = new Minimap;
helpWindow = new HelpWindow;
debugWindow = new DebugWindow;
itemShortcutWindow = new ShortcutWindow("ItemShortcut",
@@ -356,10 +356,10 @@ void Game::logic()
if (Client::getState() == STATE_CHANGE_MAP)
return; // Not a problem here
- if (Client::getState() != STATE_ERROR)
- {
- errorMessage = _("The connection to the server was lost.");
- }
+ if (Client::getState() == STATE_ERROR)
+ return; // Disconnect gets handled by STATE_ERROR
+
+ errorMessage = _("The connection to the server was lost.");
if (!disconnectedDialog)
{
@@ -759,7 +759,7 @@ void Game::handleInput()
// Moving player around
if (player_node->isAlive() && !PlayerInfo::isTalking() &&
- !chatWindow->isInputFocused() && !quitDialog)
+ !chatWindow->isInputFocused() && !quitDialog && !TextDialog::isActive())
{
// Get the state of the keyboard keys
keyboard.refreshActiveKeys();
@@ -962,7 +962,12 @@ void Game::changeMap(const std::string &mapPath)
std::string oldMusic = mCurrentMap ? mCurrentMap->getMusicFile() : "";
std::string newMusic = newMap ? newMap->getMusicFile() : "";
if (newMusic != oldMusic)
- sound.playMusic(newMusic);
+ {
+ if (newMusic.empty())
+ sound.stopMusic();
+ else
+ sound.playMusic(newMusic);
+ }
delete mCurrentMap;
mCurrentMap = newMap;