From c0bf559ca28a98eb00af60741a9515a12d69c225 Mon Sep 17 00:00:00 2001 From: lotodore Date: Thu, 22 Nov 2007 01:11:17 +0000 Subject: [PATCH] Fixed two avatar related bugs, which were both result of not adding an avatar to the manager when it was configured (a restart was required). Fixed "the server requested a non-existing avatar", and fixed showing own avatar in lobby directly after setting it. --- src/gui/qt/mainwindow/mainwindowimpl.cpp | 5 ++++- src/session.cpp | 7 ++++++- src/session.h | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/gui/qt/mainwindow/mainwindowimpl.cpp b/src/gui/qt/mainwindow/mainwindowimpl.cpp index 92f8d260..46e08ddc 100755 --- a/src/gui/qt/mainwindow/mainwindowimpl.cpp +++ b/src/gui/qt/mainwindow/mainwindowimpl.cpp @@ -967,7 +967,10 @@ void mainWindowImpl::callSettingsDialog() { if (myConfig->readConfigInt("ShowRightToolBox")) { groupBox_RightToolBox->show(); } else { groupBox_RightToolBox->hide(); } - + + //Add avatar (if set) + mySession->addOwnAvatar(myConfig->readConfigString("MyAvatar")); + //Falls Spielernamen geändert wurden --> neu zeichnen --> erst beim nächsten Neustart neu ausgelesen if (mySettingsDialog->getPlayerNickIsChanged() && mySession->getCurrentGame() && !mySession->isNetworkClientRunning()) { diff --git a/src/session.cpp b/src/session.cpp index a7926411..48c6522e 100755 --- a/src/session.cpp +++ b/src/session.cpp @@ -56,7 +56,7 @@ bool Session::init() { myAvatarManager.reset(new AvatarManager); bool retVal = myAvatarManager->Init(myConfig->readConfigString("AppDataDir"), myConfig->readConfigString("CacheDir")); - myAvatarManager->AddSingleAvatar(myConfig->readConfigString("MyAvatar")); + addOwnAvatar(myConfig->readConfigString("MyAvatar")); myAvatarManager->RemoveOldAvatarCacheEntries(); return retVal; } @@ -66,6 +66,11 @@ void Session::init(boost::shared_ptr manager) myAvatarManager = manager; } +void Session::addOwnAvatar(const std::string &avatarFile) +{ + myAvatarManager->AddSingleAvatar(avatarFile); +} + void Session::startLocalGame(const GameData &gameData, const StartData &startData) { myGameType = GAME_TYPE_LOCAL; diff --git a/src/session.h b/src/session.h index dbbaa4ed..e5804324 100755 --- a/src/session.h +++ b/src/session.h @@ -47,6 +47,8 @@ public: bool init(); void init(boost::shared_ptr manager); + void addOwnAvatar(const std::string &avatarFile); + void startLocalGame(const GameData &gameData, const StartData &startData); void startClientGame(boost::shared_ptr game);