summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2006-09-14 01:29:30 +0000
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2006-09-14 01:29:30 +0000
commit21dc5bb7a3ec09dafb41bc84050a2f5fbe0f9311 (patch)
tree5dfa5d1cebb1ca4ba9637b5ad8957d1c4b35e360
parent535ac50a68c17e421230875fea05fd1161a92fe6 (diff)
downloadmana-client-21dc5bb7a3ec09dafb41bc84050a2f5fbe0f9311.tar.gz
mana-client-21dc5bb7a3ec09dafb41bc84050a2f5fbe0f9311.tar.bz2
mana-client-21dc5bb7a3ec09dafb41bc84050a2f5fbe0f9311.tar.xz
mana-client-21dc5bb7a3ec09dafb41bc84050a2f5fbe0f9311.zip
src/gui/char_select.cpp, src/main.cpp: Fix the character name matching loop and add support for saving the last used character (based on a patch by Andrew Harrison).
-rw-r--r--ChangeLog3
-rw-r--r--src/gui/char_select.cpp4
-rw-r--r--src/main.cpp7
3 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ea6d7b32..4938dc7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,9 @@
2006-09-14 Björn Steinbrink <B.Steinbrink@gmx.de>
+ * src/gui/char_select.cpp, src/main.cpp: Fix the character name
+ matching loop and add support for saving the last used character
+ (based on a patch by Andrew Harrison).
* src/gui/char_select.cpp, src/gui/char_select.h, src/main.cpp: Clean
up the player selection stuff, it's a bit nicer now.
* src/main.cpp: Fix up the player selection command line option.
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index 6da0f64d..4aacd40e 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -23,6 +23,7 @@
#include "char_select.h"
+#include <iostream>
#include <string>
#include <guichan/widgets/label.hpp>
@@ -238,9 +239,12 @@ bool CharSelectDialog::selectByName(const std::string &name)
mCharInfo->select(0);
do {
LocalPlayer *player = mCharInfo->getEntry();
+ std::cout << name << " " << (player ? player->getName() : "") << "\n";
if (player && player->getName() == name)
return true;
+
+ mCharInfo->next();
} while (mCharInfo->getPos());
mCharInfo->select(oldPos);
diff --git a/src/main.cpp b/src/main.cpp
index 0d4b54d7..08fc7a56 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -468,6 +468,10 @@ void charLogin(Network *network, LoginData *loginData)
void mapLogin(Network *network, LoginData *loginData)
{
+ logger->log("Memorizing selected character %s",
+ player_node->getName().c_str());
+ config.setValue("lastCharacter", player_node->getName());
+
MessageOut outMsg(network);
logger->log("Trying to connect to map server...");
@@ -657,6 +661,9 @@ int main(int argc, char *argv[])
if (((CharSelectDialog*)currentDialog)->
selectByName(options.playername))
options.chooseDefault = true;
+ else
+ ((CharSelectDialog*)currentDialog)->selectByName(
+ config.getValue("lastCharacter", ""));
if (options.chooseDefault)
((CharSelectDialog*)currentDialog)->action("ok", NULL);