diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-01-25 02:35:39 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-01-25 02:35:39 +0300 |
commit | e15445f0f8f95f1547798b886b002146d282c006 (patch) | |
tree | d29b49d8d7d0c8d997cbd58ce3733dba5c2c5a9a /src/net | |
parent | 992f105f78fb0e4c42fcc7941e289a2348a3ccaf (diff) | |
download | manaverse-e15445f0f8f95f1547798b886b002146d282c006.tar.gz manaverse-e15445f0f8f95f1547798b886b002146d282c006.tar.bz2 manaverse-e15445f0f8f95f1547798b886b002146d282c006.tar.xz manaverse-e15445f0f8f95f1547798b886b002146d282c006.zip |
Save camera mode before speaking with npc and restore after.
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/tmwa/npchandler.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp index c395eb1b8..eed10ab7c 100644 --- a/src/net/tmwa/npchandler.cpp +++ b/src/net/tmwa/npchandler.cpp @@ -131,6 +131,8 @@ void NpcHandler::closeDialog(int npcId) { if ((*it).second.dialog) (*it).second.dialog->close(); + if ((*it).second.dialog == mDialog) + mDialog = nullptr; mNpcDialogs.erase(it); } } @@ -226,6 +228,7 @@ int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) else { mDialog = new NpcDialog(npcId); + mDialog->saveCamera(); if (player_node) player_node->stopWalking(false); Wrapper wrap; @@ -235,7 +238,11 @@ int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) } else { + if (mDialog && mDialog != diag->second.dialog) + mDialog->restoreCamera(); mDialog = diag->second.dialog; + if (mDialog) + mDialog->saveCamera(); } return npcId; } |