diff options
Diffstat (limited to 'src/gui/windows')
-rw-r--r-- | src/gui/windows/charselectdialog.cpp | 29 | ||||
-rw-r--r-- | src/gui/windows/charselectdialog.h | 2 |
2 files changed, 16 insertions, 15 deletions
diff --git a/src/gui/windows/charselectdialog.cpp b/src/gui/windows/charselectdialog.cpp index 2d45e47ca..3c355c199 100644 --- a/src/gui/windows/charselectdialog.cpp +++ b/src/gui/windows/charselectdialog.cpp @@ -463,24 +463,23 @@ void CharSelectDialog::setCharacters(const Net::Characters &characters) } FOR_EACH (Net::Characters::const_iterator, i, characters) - { - if (!*i) - continue; - - Net::Character *const character = *i; - - const int characterSlot = character->slot; - if (characterSlot >= static_cast<int>(mCharacterEntries.size())) - { - logger->log("Warning: slot out of range: %d", character->slot); - continue; - } + setCharacter(*i); + updateState(); +} - if (mCharacterEntries[characterSlot]) - mCharacterEntries[characterSlot]->setCharacter(character); +void CharSelectDialog::setCharacter(Net::Character *const character) +{ + if (!character) + return; + const int characterSlot = character->slot; + if (characterSlot >= static_cast<int>(mCharacterEntries.size())) + { + logger->log("Warning: slot out of range: %d", character->slot); + return; } - updateState(); + if (mCharacterEntries[characterSlot]) + mCharacterEntries[characterSlot]->setCharacter(character); } void CharSelectDialog::lock() diff --git a/src/gui/windows/charselectdialog.h b/src/gui/windows/charselectdialog.h index cf44f30b9..a6acd9c32 100644 --- a/src/gui/windows/charselectdialog.h +++ b/src/gui/windows/charselectdialog.h @@ -98,6 +98,8 @@ class CharSelectDialog final : public Window, void setCharacters(const Net::Characters &characters); + void setCharacter(Net::Character *const character); + void use(const int selected); void lock(); |