summaryrefslogtreecommitdiff
path: root/src/gui/charselectdialog.cpp
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-12-28 00:48:05 +0100
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-12-29 07:41:08 +0100
commit3553f1e11f7f4478c4c64192f6455d528c7dffda (patch)
treee0dd6bf3c44718f7be5cad7803449cd6ebb625ff /src/gui/charselectdialog.cpp
parent411b54e993ea997e18be18fadd26ceab00c00fa3 (diff)
downloadmana-client-3553f1e11f7f4478c4c64192f6455d528c7dffda.tar.gz
mana-client-3553f1e11f7f4478c4c64192f6455d528c7dffda.tar.bz2
mana-client-3553f1e11f7f4478c4c64192f6455d528c7dffda.tar.xz
mana-client-3553f1e11f7f4478c4c64192f6455d528c7dffda.zip
Made the client handle the characters slots properly for Manaserv.
Reviewed-by: Crush.
Diffstat (limited to 'src/gui/charselectdialog.cpp')
-rw-r--r--src/gui/charselectdialog.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gui/charselectdialog.cpp b/src/gui/charselectdialog.cpp
index 1fe7d3ba..42c514ec 100644
--- a/src/gui/charselectdialog.cpp
+++ b/src/gui/charselectdialog.cpp
@@ -281,13 +281,20 @@ void CharSelectDialog::setCharacters(const Net::Characters &characters)
for (i = characters.begin(); i != i_end; ++i)
{
Net::Character *character = *i;
- if (character->slot >= (int)mCharacterEntries.size())
+
+ // Slots Number start at 1 for Manaserv, so we offset them by one.
+ int characterSlot = character->slot;
+ if (Net::getNetworkType() == ServerInfo::MANASERV
+ && characterSlot > 0)
+ --characterSlot;
+
+ if (characterSlot >= (int)mCharacterEntries.size())
{
logger->log("Warning: slot out of range: %d", character->slot);
continue;
}
- mCharacterEntries[character->slot]->setCharacter(character);
+ mCharacterEntries[characterSlot]->setCharacter(character);
}
}