diff options
author | Björn Steinbrink <B.Steinbrink@gmx.de> | 2006-09-13 22:34:17 +0000 |
---|---|---|
committer | Björn Steinbrink <B.Steinbrink@gmx.de> | 2006-09-13 22:34:17 +0000 |
commit | 4423d208ad7dc1ed3967d715642595f4fd1e6faf (patch) | |
tree | deb3bfb729401a5b260007154ed58241291e1524 /src | |
parent | 6c1bf893c93bcfe8115d102eea7460e07b799aac (diff) | |
download | mana-4423d208ad7dc1ed3967d715642595f4fd1e6faf.tar.gz mana-4423d208ad7dc1ed3967d715642595f4fd1e6faf.tar.bz2 mana-4423d208ad7dc1ed3967d715642595f4fd1e6faf.tar.xz mana-4423d208ad7dc1ed3967d715642595f4fd1e6faf.zip |
Fix up the player selection command line option.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/main.cpp b/src/main.cpp index 17d00949..127b2a84 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -653,23 +653,24 @@ int main(int argc, char *argv[]) logger->log("State: CHAR_SELECT"); currentDialog = new CharSelectDialog(network, &charInfo, 1 - loginData.sex); + if (options.playername != "") { - n_character = 0; - while (((CharSelectDialog*) currentDialog)->getName() - != options.playername && - n_character < MAX_SLOT + 1) - { - ((CharSelectDialog*) currentDialog)->action("next", - NULL); - ((CharSelectDialog*) currentDialog)->updatePlayerInfo(); - n_character++; - } - n_character = MAX_SLOT + 1; - } - if (options.chooseDefault || options.playername != "") { - ((CharSelectDialog*)currentDialog)->action("ok", - NULL); + charInfo.select(0); + do { + LocalPlayer *player = charInfo.getEntry(); + + if (player && player->getName() == + options.playername) { + options.chooseDefault = true; + break; + } + + charInfo.next(); + } while (charInfo.getPos()); } + + if (options.chooseDefault) + ((CharSelectDialog*)currentDialog)->action("ok", NULL); break; case GAME_STATE: |