Player member variables in WindowManager are updated directly when a dialog finishes, needed for review dialog which is shown directly after another closes.

This commit is contained in:
Jan Borsodi 2010-10-23 01:07:53 +02:00
parent cf9b90386c
commit 81e83a0813

View file

@ -485,7 +485,8 @@ void WindowManager::onNameDialogDone()
{ {
if (nameDialog) if (nameDialog)
{ {
environment.mMechanicsManager->setPlayerName(nameDialog->getTextInput()); playerName = nameDialog->getTextInput();
environment.mMechanicsManager->setPlayerName(playerName);
removeDialog(nameDialog); removeDialog(nameDialog);
} }
@ -504,9 +505,9 @@ void WindowManager::onRaceDialogDone()
{ {
if (raceDialog) if (raceDialog)
{ {
const std::string &raceId = raceDialog->getRaceId(); playerRaceId = raceDialog->getRaceId();
if (!raceId.empty()) if (!playerRaceId.empty())
environment.mMechanicsManager->setPlayerRace(raceId, raceDialog->getGender() == RaceDialog::GM_Male); environment.mMechanicsManager->setPlayerRace(playerRaceId, raceDialog->getGender() == RaceDialog::GM_Male);
removeDialog(raceDialog); removeDialog(raceDialog);
} }
@ -525,9 +526,9 @@ void WindowManager::onRaceDialogBack()
{ {
if (raceDialog) if (raceDialog)
{ {
const std::string &raceId = raceDialog->getRaceId(); playerRaceId = raceDialog->getRaceId();
if (!raceId.empty()) if (!playerRaceId.empty())
environment.mMechanicsManager->setPlayerRace(raceId, raceDialog->getGender() == RaceDialog::GM_Male); environment.mMechanicsManager->setPlayerRace(playerRaceId, raceDialog->getGender() == RaceDialog::GM_Male);
removeDialog(raceDialog); removeDialog(raceDialog);
} }
@ -665,6 +666,9 @@ void WindowManager::onPickClassDialogDone()
const std::string &classId = pickClassDialog->getClassId(); const std::string &classId = pickClassDialog->getClassId();
if (!classId.empty()) if (!classId.empty())
environment.mMechanicsManager->setPlayerClass(classId); environment.mMechanicsManager->setPlayerClass(classId);
const ESM::Class *klass = environment.mWorld->getStore().classes.find(classId);
if (klass)
playerClass = *klass;
removeDialog(pickClassDialog); removeDialog(pickClassDialog);
} }
@ -718,6 +722,7 @@ void WindowManager::onCreateClassDialogDone()
klass.data.skills[i][0] = minorSkills[i]; klass.data.skills[i][0] = minorSkills[i];
} }
environment.mMechanicsManager->setPlayerClass(klass); environment.mMechanicsManager->setPlayerClass(klass);
playerClass = klass;
removeDialog(createClassDialog); removeDialog(createClassDialog);
} }
@ -745,9 +750,9 @@ void WindowManager::onBirthSignDialogDone()
{ {
if (birthSignDialog) if (birthSignDialog)
{ {
const std::string birthSignId = birthSignDialog->getBirthId(); playerBirthSignId = birthSignDialog->getBirthId();
if (!birthSignId.empty()) if (!playerBirthSignId.empty())
environment.mMechanicsManager->setPlayerBirthsign(birthSignId); environment.mMechanicsManager->setPlayerBirthsign(playerBirthSignId);
removeDialog(birthSignDialog); removeDialog(birthSignDialog);
} }