summaryrefslogtreecommitdiff
path: root/src/net/charserverhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/charserverhandler.cpp')
-rw-r--r--src/net/charserverhandler.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp
index f715b434..848b97fb 100644
--- a/src/net/charserverhandler.cpp
+++ b/src/net/charserverhandler.cpp
@@ -71,7 +71,6 @@ CharServerHandler::handleMessage(MessageIn &msg)
delete mCharInfo->getEntry();
mCharInfo->setEntry(0);
mCharInfo->unlock();
- n_character--;
new OkDialog("Info", "Player deleted");
}
// Character deletion failed
@@ -100,7 +99,6 @@ CharServerHandler::handleMessage(MessageIn &msg)
mCharInfo->unlock();
mCharInfo->select(slot);
mCharInfo->setEntry(tempPlayer);
- n_character++;
break;
case APMSG_CHAR_SELECT_RESPONSE:
@@ -184,6 +182,7 @@ CharServerHandler::handleCharSelectResponse(MessageIn &msg)
player_node = mCharInfo->getEntry();
mCharInfo->unlock();
mCharInfo->select(0);
+
do {
LocalPlayer *tmp = mCharInfo->getEntry();
if (tmp != player_node)
@@ -191,6 +190,8 @@ CharServerHandler::handleCharSelectResponse(MessageIn &msg)
mCharInfo->next();
} while (mCharInfo->getPos());
+ mCharInfo->clear(); //player_node will be deleted by ~Game
+
state = STATE_CONNECT_GAME;
}
}