moved stats label <-> GMST text mapping from mwmechanics to mwgui; added missing stats window labels

actorid
Marc Zinnschlag 15 years ago
parent 9fafac1ef8
commit b584215680

@ -37,7 +37,7 @@ void OMW::Engine::executeLocalScripts()
MWScript::InterpreterContext interpreterContext (mEnvironment,
&iter->second.getRefData().getLocals(), MWWorld::Ptr (iter->second));
mScriptManager->run (iter->first, interpreterContext);
if (mEnvironment.mWorld->hasCellChanged())
break;
}
@ -56,7 +56,7 @@ bool OMW::Engine::frameStarted(const Ogre::FrameEvent& evt)
executeLocalScripts(); // This does not handle the case where a global script causes a cell
// change, followed by a cell change in a local script during the same
// frame.
// passing of time
if (mEnvironment.mWindowManager->getMode()==MWGui::GM_Game)
mEnvironment.mWorld->advanceTime (
@ -64,7 +64,7 @@ bool OMW::Engine::frameStarted(const Ogre::FrameEvent& evt)
if (changed) // keep change flag for another frame, if cell changed happend in local script
mEnvironment.mWorld->markCellAsUnchanged();
// update actors
mEnvironment.mMechanicsManager->update();
@ -77,7 +77,7 @@ OMW::Engine::Engine()
, mNewGame (false)
, mScriptManager (0)
, mScriptContext (0)
{
{
}
OMW::Engine::~Engine()
@ -151,7 +151,7 @@ void OMW::Engine::enableDebugMode()
{
mDebug = true;
}
void OMW::Engine::enableVerboseScripts()
{
mVerboseScripts = true;
@ -211,21 +211,19 @@ void OMW::Engine::go()
mScriptContext->setExtensions (&mExtensions);
mScriptManager = new MWScript::ScriptManager (mEnvironment.mWorld->getStore(), mVerboseScripts,
*mScriptContext);
*mScriptContext);
mEnvironment.mGlobalScripts = new MWScript::GlobalScripts (mEnvironment.mWorld->getStore(),
*mScriptManager);
// Create game mechanics system
mEnvironment.mMechanicsManager = new MWMechanics::MechanicsManager (
mEnvironment.mWorld->getStore(), *mEnvironment.mWindowManager);
mEnvironment.mMechanicsManager->configureGUI();
// load cell
ESM::Position pos;
pos.pos[0] = pos.pos[1] = pos.pos[2] = 0;
pos.rot[0] = pos.rot[1] = pos.rot[2] = 0;
pos.rot[0] = pos.rot[1] = pos.rot[2] = 0;
mEnvironment.mWorld->changeCell (mCellName, pos);
// Sets up the input system
@ -241,5 +239,3 @@ void OMW::Engine::go()
std::cout << "Quitting peacefully.\n";
}

@ -1,6 +1,8 @@
#ifndef MWGUI_LAYOUTS_H
#define MWGUI_LAYOUTS_H
#include <components/esm_store/store.hpp>
#include <openengine/gui/layout.hpp>
/*
@ -50,9 +52,6 @@ namespace MWGui
// These are just demo values, you should replace these with
// real calls from outside the class later.
setStats(60, 100,
30, 100,
80, 100);
setWeapIcon("icons\\w\\tx_knife_iron.dds");
setWeapStatus(90, 100);
setSpellIcon("icons\\s\\b_tx_s_rstor_health.dds");
@ -182,18 +181,34 @@ namespace MWGui
setText(tname, out.str().c_str());
}
StatsWindow()
StatsWindow (const ESMS::ESMStore& store)
: Layout("openmw_stats_window_layout.xml")
{
setCoord(0,0,498, 342);
setText("Health_str", "Health");
setText("Magicka_str", "Magicka");
setText("Fatigue_str", "Fatigue");
const char *names[][2] =
{
{ "Attrib1", "sAttributeStrength" },
{ "Attrib2", "sAttributeIntelligence" },
{ "Attrib3", "sAttributeWillpower" },
{ "Attrib4", "sAttributeAgility" },
{ "Attrib5", "sAttributeSpeed" },
{ "Attrib6", "sAttributeEndurance" },
{ "Attrib7", "sAttributePersonality" },
{ "Attrib8", "sAttributeLuck" },
{ "Health_str", "sHealth" },
{ "Magicka_str", "sMagic" },
{ "Fatigue_str", "sFatigue" },
{ "Level_str", "sLevel" },
{ "Race_str", "sRace" },
{ "Class_str", "sClass" },
{ 0, 0 }
};
setText("Level_str", "Level");
setText("Race_str", "Race");
setText("Class_str", "Class");
for (int i=0; names[i][0]; ++i)
{
setText (names[i][0], store.gameSettings.find (names[i][1])->str);
}
// These are just demo values, you should replace these with
// real calls from outside the class later.
@ -202,15 +217,6 @@ namespace MWGui
setText("LevelText", "5");
setText("RaceText", "Wood Elf");
setText("ClassText", "Pilgrim");
setText("AttribVal1", "30");
setText("AttribVal2", "40");
setText("AttribVal3", "30");
setText("AttribVal4", "75");
setText("AttribVal5", "50");
setText("AttribVal6", "40");
setText("AttribVal7", "50");
setText("AttribVal8", "40");
}
void setPlayerName(const std::string& playerName)
@ -218,24 +224,6 @@ namespace MWGui
mMainWidget->setCaption(playerName);
}
/// Set label text for the value with the given ID.
void setLabel (const std::string& id, const std::string& label)
{
static const char *ids[] =
{
"Attrib1", "Attrib2", "Attrib3", "Attrib4", "Attrib5", "Attrib6",
"Attrib7", "Attrib8",
0
};
for (int i=0; ids[i]; ++i)
if (ids[i]==id)
{
setText (id, label);
break;
}
}
/// Set value for the given ID.
void setValue (const std::string& id, const MWMechanics::Stat<int>& value)
{

@ -19,7 +19,7 @@ WindowManager::WindowManager(MyGUI::Gui *_gui, MWWorld::Environment& environment
hud = new HUD(w,h);
menu = new MainMenu(w,h);
map = new MapWindow();
stats = new StatsWindow();
stats = new StatsWindow (environment.mWorld->getStore());
console = new Console(w,h, environment, extensions);
// The HUD is always on
@ -85,11 +85,6 @@ void WindowManager::updateVisible()
// All other modes are ignored
}
void WindowManager::setLabel (const std::string& id, const std::string& label)
{
stats->setLabel (id, label);
}
void WindowManager::setValue (const std::string& id, const MWMechanics::Stat<int>& value)
{
stats->setValue (id, value);

@ -139,9 +139,6 @@ namespace MWGui
MyGUI::Gui* getGui() const { return gui; }
void setLabel (const std::string& id, const std::string& label);
///< Set label text for the value with the given ID.
void setValue (const std::string& id, const MWMechanics::Stat<int>& value);
///< Set value for the given ID.

@ -14,29 +14,6 @@ namespace MWMechanics
}
void MechanicsManager::configureGUI()
{
const char *names[][2] =
{
{ "Attrib1", "sAttributeStrength" },
{ "Attrib2", "sAttributeIntelligence" },
{ "Attrib3", "sAttributeWillpower" },
{ "Attrib4", "sAttributeAgility" },
{ "Attrib5", "sAttributeSpeed" },
{ "Attrib6", "sAttributeEndurance" },
{ "Attrib7", "sAttributePersonality" },
{ "Attrib8", "sAttributeLuck" },
{ 0, 0 }
};
for (int i=0; names[i][0]; ++i)
{
std::string label = mStore.gameSettings.find (names[i][1])->str;
mWindowManager.setLabel (names[i][0], label);
}
}
void MechanicsManager::addActor (const MWWorld::Ptr& ptr)
{
mActors.insert (ptr);

Loading…
Cancel
Save