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.

This commit is contained in:
lotodore
2007-11-22 01:11:17 +00:00
parent c5bae66142
commit c0bf559ca2
3 changed files with 12 additions and 2 deletions
+4 -1
View File
@@ -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()) {
+6 -1
View File
@@ -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<AvatarManager> 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;
+2
View File
@@ -47,6 +47,8 @@ public:
bool init();
void init(boost::shared_ptr<AvatarManager> manager);
void addOwnAvatar(const std::string &avatarFile);
void startLocalGame(const GameData &gameData, const StartData &startData);
void startClientGame(boost::shared_ptr<Game> game);