summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);