summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2007-03-24 00:50:31 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2007-03-24 00:50:31 +0000
commita34741f590ed24c2a6e0c0ebbde832572c606b94 (patch)
tree4377e04499c9cb6ffba2c005d97bd47cdcae0a82 /src
parent82c7ecf7a838c43771a676bb9311f9a1fc403f67 (diff)
downloadmana-a34741f590ed24c2a6e0c0ebbde832572c606b94.tar.gz
mana-a34741f590ed24c2a6e0c0ebbde832572c606b94.tar.bz2
mana-a34741f590ed24c2a6e0c0ebbde832572c606b94.tar.xz
mana-a34741f590ed24c2a6e0c0ebbde832572c606b94.zip
Changed the order of network message handling and logic, in order to prevent an
incoming character delete message from deleting the player character that was about to be drawn.
Diffstat (limited to 'src')
-rw-r--r--src/gui/char_select.cpp2
-rw-r--r--src/main.cpp2
2 files changed, 1 insertions, 3 deletions
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index 845c6d64..fc6be59f 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -151,11 +151,9 @@ void CharSelectDialog::action(const gcn::ActionEvent &event)
else if (event.getId() == "new" && n_character <= MAX_SLOT)
{
// Start new character dialog
- mCharInfo->lock();
CharCreateDialog *charCreateDialog =
new CharCreateDialog(this, mCharInfo->getPos(), mNetwork, mSex);
charServerHandler.setCharCreateDialog(charCreateDialog);
- mCharInfo->unlock();
}
else if (event.getId() == "delete")
{
diff --git a/src/main.cpp b/src/main.cpp
index 98a7aeb7..78b967e2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -625,9 +625,9 @@ int main(int argc, char *argv[])
guiInput->pushInput(event);
}
- gui->logic();
network->flush();
network->dispatchMessages();
+ gui->logic();
if (network->getState() == Network::NET_ERROR)
{