forked from teamnwah/openmw-tes3coop
move ESMStore to MWWorld
This commit is contained in:
parent
f0a3ee0ef9
commit
2057f5619e
76 changed files with 354 additions and 403 deletions
|
@ -53,6 +53,7 @@ add_openmw_dir (mwworld
|
|||
containerstore actiontalk actiontake manualref player cellfunctors
|
||||
cells localscripts customdata weather inventorystore ptr actionopen actionread
|
||||
actionequip timestamp actionalchemy cellstore actionapply actioneat
|
||||
esmstore reclists
|
||||
)
|
||||
|
||||
add_openmw_dir (mwclass
|
||||
|
|
|
@ -31,11 +31,6 @@ namespace ESM
|
|||
struct Spell;
|
||||
}
|
||||
|
||||
namespace ESMS
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
||||
namespace MWRender
|
||||
{
|
||||
class ExternalRendering;
|
||||
|
@ -48,6 +43,7 @@ namespace MWWorld
|
|||
class LocalScripts;
|
||||
class Ptr;
|
||||
class TimeStamp;
|
||||
class ESMStore;
|
||||
}
|
||||
|
||||
namespace MWBase
|
||||
|
@ -104,7 +100,7 @@ namespace MWBase
|
|||
|
||||
virtual MWWorld::Player& getPlayer() = 0;
|
||||
|
||||
virtual const ESMS::ESMStore& getStore() const = 0;
|
||||
virtual const MWWorld::ESMStore& getStore() const = 0;
|
||||
|
||||
virtual ESM::ESMReader& getEsmReader() = 0;
|
||||
|
||||
|
|
|
@ -205,7 +205,7 @@ namespace MWClass
|
|||
|
||||
std::string text;
|
||||
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
if (ref->ref.mTeleport)
|
||||
{
|
||||
|
|
|
@ -143,7 +143,7 @@ namespace MWClass
|
|||
|
||||
MWGui::ToolTipInfo info;
|
||||
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
int count = ptr.getRefData().getCount();
|
||||
|
||||
|
@ -189,7 +189,7 @@ namespace MWClass
|
|||
{
|
||||
MWWorld::Ptr newPtr;
|
||||
|
||||
const ESMS::ESMStore &store =
|
||||
const MWWorld::ESMStore &store =
|
||||
MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
if (MWWorld::Class::get(ptr).getName(ptr) == store.gameSettings.find("sGold")->getString()) {
|
||||
|
|
|
@ -277,7 +277,7 @@ namespace MWClass
|
|||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||
info.icon = ref->base->mIcon;
|
||||
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
std::string text;
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
#include <components/esm/loaddial.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/scriptmanager.hpp"
|
||||
|
@ -19,6 +17,7 @@
|
|||
#include "../mwworld/refdata.hpp"
|
||||
#include "../mwworld/player.hpp"
|
||||
#include "../mwworld/containerstore.hpp"
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwgui/dialogue.hpp"
|
||||
|
||||
|
@ -84,7 +83,7 @@ namespace
|
|||
|
||||
template<typename T>
|
||||
bool checkLocal (char comp, const std::string& name, T value, const MWWorld::Ptr& actor,
|
||||
const ESMS::ESMStore& store)
|
||||
const MWWorld::ESMStore& store)
|
||||
{
|
||||
std::string scriptName = MWWorld::Class::get (actor).getScript (actor);
|
||||
|
||||
|
@ -590,8 +589,8 @@ namespace MWDialogue
|
|||
mCompilerContext.setExtensions (&extensions);
|
||||
mDialogueMap.clear();
|
||||
mActorKnownTopics.clear();
|
||||
ESMS::RecListCaseT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
for(ESMS::RecListCaseT<ESM::Dialogue>::MapType::iterator it = dialogueList.begin(); it!=dialogueList.end();it++)
|
||||
MWWorld::RecListCaseT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
for(MWWorld::RecListCaseT<ESM::Dialogue>::MapType::iterator it = dialogueList.begin(); it!=dialogueList.end();it++)
|
||||
{
|
||||
mDialogueMap[toLower(it->first)] = it->second;
|
||||
}
|
||||
|
@ -642,9 +641,9 @@ namespace MWDialogue
|
|||
|
||||
//greeting
|
||||
bool greetingFound = false;
|
||||
//ESMS::RecListT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
ESMS::RecListCaseT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
for(ESMS::RecListCaseT<ESM::Dialogue>::MapType::iterator it = dialogueList.begin(); it!=dialogueList.end();it++)
|
||||
//MWWorld::RecListT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
MWWorld::RecListCaseT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
for(MWWorld::RecListCaseT<ESM::Dialogue>::MapType::iterator it = dialogueList.begin(); it!=dialogueList.end();it++)
|
||||
{
|
||||
ESM::Dialogue ndialogue = it->second;
|
||||
if(ndialogue.mType == ESM::Dialogue::Greeting)
|
||||
|
@ -742,8 +741,8 @@ namespace MWDialogue
|
|||
mChoice = -1;
|
||||
mActorKnownTopics.clear();
|
||||
MWGui::DialogueWindow* win = MWBase::Environment::get().getWindowManager()->getDialogueWindow();
|
||||
ESMS::RecListCaseT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
for(ESMS::RecListCaseT<ESM::Dialogue>::MapType::iterator it = dialogueList.begin(); it!=dialogueList.end();it++)
|
||||
MWWorld::RecListCaseT<ESM::Dialogue>::MapType dialogueList = MWBase::Environment::get().getWorld()->getStore().dialogs.list;
|
||||
for(MWWorld::RecListCaseT<ESM::Dialogue>::MapType::iterator it = dialogueList.begin(); it!=dialogueList.end();it++)
|
||||
{
|
||||
ESM::Dialogue ndialogue = it->second;
|
||||
if(ndialogue.mType == ESM::Dialogue::Topic)
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
#include <stdexcept>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
namespace MWDialogue
|
||||
{
|
||||
JournalEntry::JournalEntry() {}
|
||||
|
@ -16,7 +16,7 @@ namespace MWDialogue
|
|||
: mTopic (topic), mInfoId (infoId)
|
||||
{}
|
||||
|
||||
std::string JournalEntry::getText (const ESMS::ESMStore& store) const
|
||||
std::string JournalEntry::getText (const MWWorld::ESMStore& store) const
|
||||
{
|
||||
const ESM::Dialogue *dialogue = store.dialogs.find (mTopic);
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
namespace ESMS
|
||||
namespace MWWorld
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace MWDialogue
|
|||
|
||||
JournalEntry (const std::string& topic, const std::string& infoId);
|
||||
|
||||
std::string getText (const ESMS::ESMStore& store) const;
|
||||
std::string getText (const MWWorld::ESMStore& store) const;
|
||||
|
||||
static JournalEntry makeFromQuest (const std::string& topic, int index);
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "journalimp.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "quest.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "topic.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
namespace MWDialogue
|
||||
{
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include "components/esm_store/store.hpp"
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -130,10 +130,10 @@ void BirthDialog::updateBirths()
|
|||
{
|
||||
mBirthList->removeAllItems();
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
ESMS::RecListT<ESM::BirthSign>::MapType::const_iterator it = store.birthSigns.list.begin();
|
||||
ESMS::RecListT<ESM::BirthSign>::MapType::const_iterator end = store.birthSigns.list.end();
|
||||
MWWorld::RecListT<ESM::BirthSign>::MapType::const_iterator it = store.birthSigns.list.begin();
|
||||
MWWorld::RecListT<ESM::BirthSign>::MapType::const_iterator end = store.birthSigns.list.end();
|
||||
int index = 0;
|
||||
|
||||
// sort by name
|
||||
|
@ -170,7 +170,7 @@ void BirthDialog::updateSpells()
|
|||
const int lineHeight = 18;
|
||||
MyGUI::IntCoord coord(0, 0, mSpellArea->getWidth(), 18);
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::BirthSign *birth = store.birthSigns.find(mCurrentBirthId);
|
||||
|
||||
std::string texturePath = std::string("textures\\") + birth->mTexture;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef CHARACTER_CREATION_HPP
|
||||
#define CHARACTER_CREATION_HPP
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -185,10 +185,10 @@ void PickClassDialog::updateClasses()
|
|||
{
|
||||
mClassList->removeAllItems();
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
ESMS::RecListT<ESM::Class>::MapType::const_iterator it = store.classes.list.begin();
|
||||
ESMS::RecListT<ESM::Class>::MapType::const_iterator end = store.classes.list.end();
|
||||
MWWorld::RecListT<ESM::Class>::MapType::const_iterator it = store.classes.list.begin();
|
||||
MWWorld::RecListT<ESM::Class>::MapType::const_iterator end = store.classes.list.end();
|
||||
int index = 0;
|
||||
for (; it != end; ++it)
|
||||
{
|
||||
|
@ -209,7 +209,7 @@ void PickClassDialog::updateStats()
|
|||
{
|
||||
if (mCurrentClassId.empty())
|
||||
return;
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::Class *klass = store.classes.search(mCurrentClassId);
|
||||
if (!klass)
|
||||
return;
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
#include <algorithm>
|
||||
#include <fstream>
|
||||
|
||||
#include <components/esm_store/reclists.hpp>
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include <components/compiler/exception.hpp>
|
||||
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwscript/extensions.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
|
@ -93,9 +92,9 @@ namespace MWGui
|
|||
scanner.listKeywords (mNames);
|
||||
|
||||
// identifier
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
for (ESMS::RecListList::const_iterator iter (store.recLists.begin());
|
||||
for (MWWorld::RecListList::const_iterator iter (store.recLists.begin());
|
||||
iter!=store.recLists.end(); ++iter)
|
||||
{
|
||||
iter->second->listIdentifier (mNames);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef MGUI_CONTAINER_H
|
||||
#define MGUI_CONTAINER_H
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "window_base.hpp"
|
||||
#include "referenceinterface.hpp"
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/dialoguemanager.hpp"
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
#include "../mwbase/windowmanager.hpp"
|
||||
|
||||
#include "widgets.hpp"
|
||||
#include "components/esm_store/store.hpp"
|
||||
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
|
|
|
@ -8,14 +8,12 @@
|
|||
|
||||
#include "../mwworld/player.hpp"
|
||||
#include "../mwworld/class.hpp"
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwmechanics/creaturestats.hpp"
|
||||
#include "../mwmechanics/npcstats.hpp"
|
||||
#include "../mwmechanics/stat.hpp"
|
||||
|
||||
#include <components/esm_store/reclists.hpp>
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
namespace MWGui
|
||||
{
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -224,10 +224,10 @@ void RaceDialog::updateRaces()
|
|||
{
|
||||
mRaceList->removeAllItems();
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
ESMS::RecListT<ESM::Race>::MapType::const_iterator it = store.races.list.begin();
|
||||
ESMS::RecListT<ESM::Race>::MapType::const_iterator end = store.races.list.end();
|
||||
MWWorld::RecListT<ESM::Race>::MapType::const_iterator it = store.races.list.begin();
|
||||
MWWorld::RecListT<ESM::Race>::MapType::const_iterator end = store.races.list.end();
|
||||
int index = 0;
|
||||
for (; it != end; ++it)
|
||||
{
|
||||
|
@ -258,7 +258,7 @@ void RaceDialog::updateSkills()
|
|||
const int lineHeight = 18;
|
||||
MyGUI::IntCoord coord1(0, 0, mSkillList->getWidth(), 18);
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::Race *race = store.races.find(mCurrentRaceId);
|
||||
int count = sizeof(race->mData.mBonus)/sizeof(race->mData.mBonus[0]); // TODO: Find a portable macro for this ARRAYSIZE?
|
||||
for (int i = 0; i < count; ++i)
|
||||
|
@ -296,7 +296,7 @@ void RaceDialog::updateSpellPowers()
|
|||
const int lineHeight = 18;
|
||||
MyGUI::IntCoord coord(0, 0, mSpellPowerList->getWidth(), 18);
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::Race *race = store.races.find(mCurrentRaceId);
|
||||
|
||||
std::vector<std::string>::const_iterator it = race->mPowers.mList.begin();
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include <boost/array.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwrender/characterpreview.hpp"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -281,7 +281,7 @@ void ReviewDialog::addSkills(const SkillList &skills, const std::string &titleId
|
|||
if (skillId < 0 || skillId > ESM::Skill::Length) // Skip unknown skill indexes
|
||||
continue;
|
||||
assert(skillId >= 0 && skillId < ESM::Skill::Length);
|
||||
const std::string &skillNameId = ESMS::Skill::sSkillNameIds[skillId];
|
||||
const std::string &skillNameId = ESM::Skill::sSkillNameIds[skillId];
|
||||
const MWMechanics::Stat<float> &stat = mSkillValues.find(skillId)->second;
|
||||
float base = stat.getBase();
|
||||
float modified = stat.getModified();
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <boost/lexical_cast.hpp>
|
||||
#include <boost/format.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/environment.hpp"
|
||||
|
|
|
@ -54,7 +54,7 @@ StatsWindow::StatsWindow (MWBase::WindowManager& parWindowManager)
|
|||
{ 0, 0 }
|
||||
};
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
for (int i=0; names[i][0]; ++i)
|
||||
{
|
||||
setText (names[i][0], store.gameSettings.find (names[i][1])->getString());
|
||||
|
@ -357,7 +357,7 @@ void StatsWindow::addSkills(const SkillList &skills, const std::string &titleId,
|
|||
if (skillId < 0 || skillId > ESM::Skill::Length) // Skip unknown skill indexes
|
||||
continue;
|
||||
assert(skillId >= 0 && skillId < ESM::Skill::Length);
|
||||
const std::string &skillNameId = ESMS::Skill::sSkillNameIds[skillId];
|
||||
const std::string &skillNameId = ESM::Skill::sSkillNameIds[skillId];
|
||||
const MWMechanics::Stat<float> &stat = mSkillValues.find(skillId)->second;
|
||||
float base = stat.getBase();
|
||||
float modified = stat.getModified();
|
||||
|
@ -422,7 +422,7 @@ void StatsWindow::updateSkillArea()
|
|||
if (!mMiscSkills.empty())
|
||||
addSkills(mMiscSkills, "sSkillClassMisc", "Misc Skills", coord1, coord2);
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
// race tooltip
|
||||
const ESM::Race* playerRace = store.races.find (MWBase::Environment::get().getWorld()->getPlayer().getRace());
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef MWGUI_STATS_WINDOW_H
|
||||
#define MWGUI_STATS_WINDOW_H
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <sstream>
|
||||
#include <set>
|
||||
|
|
|
@ -365,7 +365,7 @@ IntSize ToolTips::createToolTip(const MWGui::ToolTipInfo& info)
|
|||
text.erase(0, 1);
|
||||
|
||||
const ESM::Enchantment* enchant = 0;
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
if (info.enchant != "")
|
||||
{
|
||||
enchant = store.enchants.search(info.enchant);
|
||||
|
@ -571,7 +571,7 @@ void ToolTips::createSkillToolTip(MyGUI::Widget* widget, int skillId)
|
|||
if (skillId == -1)
|
||||
return;
|
||||
|
||||
const std::string &skillNameId = ESMS::Skill::sSkillNameIds[skillId];
|
||||
const std::string &skillNameId = ESM::Skill::sSkillNameIds[skillId];
|
||||
const ESM::Skill* skill = MWBase::Environment::get().getWorld()->getStore().skills.search(skillId);
|
||||
assert(skill);
|
||||
const ESM::Attribute* attr = MWBase::Environment::get().getWorld()->getStore().attributes.search(skill->mData.mAttribute);
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include "components/esm_store/store.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#undef min
|
||||
#undef max
|
||||
|
||||
|
@ -228,7 +228,7 @@ void MWSpell::setSpellId(const std::string &spellId)
|
|||
|
||||
void MWSpell::createEffectWidgets(std::vector<MyGUI::WidgetPtr> &effects, MyGUI::WidgetPtr creator, MyGUI::IntCoord &coord, int flags)
|
||||
{
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::Spell *spell = store.spells.search(mId);
|
||||
MYGUI_ASSERT(spell, "spell with id '" << mId << "' not found");
|
||||
|
||||
|
@ -259,7 +259,7 @@ void MWSpell::updateWidgets()
|
|||
{
|
||||
if (mSpellNameWidget && mWindowManager)
|
||||
{
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::Spell *spell = store.spells.search(mId);
|
||||
if (spell)
|
||||
static_cast<MyGUI::TextBox*>(mSpellNameWidget)->setCaption(spell->mName);
|
||||
|
@ -386,7 +386,10 @@ void MWSpellEffect::setSpellEffect(const SpellEffectParams& params)
|
|||
|
||||
void MWSpellEffect::updateWidgets()
|
||||
{
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
if (!mWindowManager)
|
||||
return;
|
||||
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::MagicEffect *magicEffect = store.magicEffects.search(mEffectParams.mEffectID);
|
||||
|
||||
assert(magicEffect);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef MWGUI_WIDGETS_H
|
||||
#define MWGUI_WIDGETS_H
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <MyGUI.h>
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include <components/esm/loadmgef.hpp>
|
||||
#include <components/esm/loadskil.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include <components/esm/loadnpc.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwworld/class.hpp"
|
||||
#include "../mwworld/inventorystore.hpp"
|
||||
|
@ -101,7 +101,7 @@ namespace MWMechanics
|
|||
health.setCurrent (health.getCurrent() + 0.1 * endurance);
|
||||
stats.setHealth (health);
|
||||
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
float fFatigueReturnBase = store.gameSettings.find("fFatigueReturnBase")->getFloat ();
|
||||
float fFatigueReturnMult = store.gameSettings.find("fFatigueReturnMult")->getFloat ();
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include <algorithm>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -41,7 +41,7 @@ namespace MWMechanics
|
|||
|
||||
float normalised = max==0 ? 1 : std::max (0.0f, static_cast<float> (current)/max);
|
||||
|
||||
const ESMS::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
return store.gameSettings.find ("fFatigueBase")->getFloat()
|
||||
- store.gameSettings.find ("fFatigueMult")->getFloat() * (1-normalised);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "mechanicsmanagerimp.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -132,7 +132,7 @@ namespace MWMechanics
|
|||
}
|
||||
}
|
||||
|
||||
typedef ESMS::IndexListT<ESM::Skill>::MapType ContainerType;
|
||||
typedef MWWorld::IndexListT<ESM::Skill>::MapType ContainerType;
|
||||
const ContainerType& skills = MWBase::Environment::get().getWorld()->getStore().skills.list;
|
||||
|
||||
for (ContainerType::const_iterator iter (skills.begin()); iter!=skills.end(); ++iter)
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <components/esm/loadclas.hpp>
|
||||
#include <components/esm/loadgmst.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "spells.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <components/esm/loadspel.hpp>
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "../mwworld/class.hpp"
|
||||
#include "../mwmechanics/creaturestats.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "npcstats.hpp"
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <components/esm/loadstat.hpp>
|
||||
#include <components/esm/loadpgrd.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/world.hpp" // these includes can be removed once the static-hack is gone
|
||||
#include "../mwbase/environment.hpp"
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include <components/esm_store/reclists.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
namespace MWRender
|
||||
{
|
||||
|
@ -30,8 +29,8 @@ namespace MWRender
|
|||
Ogre::TexturePtr tex;
|
||||
|
||||
// get the size of the world
|
||||
const ESMS::CellList::ExtCells& extCells = MWBase::Environment::get().getWorld ()->getStore ().cells.extCells;
|
||||
for (ESMS::CellList::ExtCells::const_iterator it = extCells.begin(); it != extCells.end(); ++it)
|
||||
const MWWorld::CellList::ExtCells& extCells = MWBase::Environment::get().getWorld ()->getStore ().cells.extCells;
|
||||
for (MWWorld::CellList::ExtCells::const_iterator it = extCells.begin(); it != extCells.end(); ++it)
|
||||
{
|
||||
if (it->first.first < mMinX)
|
||||
mMinX = it->first.first;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <OgreMaterialManager.h>
|
||||
#include <OgreHardwarePixelBuffer.h>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <OgreEntity.h>
|
||||
#include <OgreSubEntity.h>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -62,7 +62,7 @@ NpcAnimation::NpcAnimation(const MWWorld::Ptr& ptr, Ogre::SceneNode* node, MWWor
|
|||
mPartPriorities[init] = 0;
|
||||
}
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::Race *race = store.races.find(ref->base->mRace);
|
||||
|
||||
std::string hairID = ref->base->mHair;
|
||||
|
@ -322,7 +322,7 @@ void NpcAnimation::updateParts()
|
|||
{ ESM::PRT_Tail, { "tail", "" } }
|
||||
};
|
||||
|
||||
const ESMS::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore();
|
||||
for(size_t i = 0;i < sizeof(PartTypeList)/sizeof(PartTypeList[0]);i++)
|
||||
{
|
||||
if(mPartPriorities[PartTypeList[i].type] < 1)
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include <extern/shiny/Platforms/Ogre/OgrePlatform.hpp>
|
||||
|
||||
#include <components/esm/loadstat.hpp>
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
#include "../mwbase/world.hpp" // these includes can be removed once the static-hack is gone
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <OgreTerrainGroup.h>
|
||||
#include <OgreHardwarePixelBuffer.h>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "cellextensions.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <components/compiler/extensions.hpp>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "compilercontext.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <components/compiler/locals.hpp>
|
||||
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
|
||||
#include <cassert>
|
||||
|
||||
#include <components/esm_store/reclists.hpp>
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/scriptmanager.hpp"
|
||||
|
@ -13,12 +12,12 @@
|
|||
|
||||
namespace MWScript
|
||||
{
|
||||
GlobalScripts::GlobalScripts (const ESMS::ESMStore& store)
|
||||
GlobalScripts::GlobalScripts (const MWWorld::ESMStore& store)
|
||||
: mStore (store)
|
||||
{
|
||||
addScript ("Main");
|
||||
|
||||
for (ESMS::RecListT<ESM::StartScript>::MapType::const_iterator iter
|
||||
for (MWWorld::RecListT<ESM::StartScript>::MapType::const_iterator iter
|
||||
(store.startScripts.list.begin());
|
||||
iter != store.startScripts.list.end(); ++iter)
|
||||
addScript (iter->second.mScript);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "locals.hpp"
|
||||
|
||||
namespace ESMS
|
||||
namespace MWWorld
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
@ -15,12 +15,12 @@ namespace MWScript
|
|||
{
|
||||
class GlobalScripts
|
||||
{
|
||||
const ESMS::ESMStore& mStore;
|
||||
const MWWorld::ESMStore& mStore;
|
||||
std::map<std::string, std::pair<bool, Locals> > mScripts; // running, local variables
|
||||
|
||||
public:
|
||||
|
||||
GlobalScripts (const ESMS::ESMStore& store);
|
||||
GlobalScripts (const MWWorld::ESMStore& store);
|
||||
|
||||
void addScript (const std::string& name);
|
||||
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
#include <components/interpreter/runtime.hpp>
|
||||
#include <components/interpreter/opcodes.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include <components/esm_store/reclists.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
|
@ -109,8 +108,8 @@ namespace MWScript
|
|||
// "Will match complete or partial cells, so ShowMap, "Vivec" will show cells Vivec and Vivec, Fred's House as well."
|
||||
// http://www.uesp.net/wiki/Tes3Mod:ShowMap
|
||||
|
||||
const ESMS::CellList::ExtCells& extCells = MWBase::Environment::get().getWorld ()->getStore ().cells.extCells;
|
||||
for (ESMS::CellList::ExtCells::const_iterator it = extCells.begin(); it != extCells.end(); ++it)
|
||||
const MWWorld::CellList::ExtCells& extCells = MWBase::Environment::get().getWorld ()->getStore ().cells.extCells;
|
||||
for (MWWorld::CellList::ExtCells::const_iterator it = extCells.begin(); it != extCells.end(); ++it)
|
||||
{
|
||||
std::string name = it->second->mName;
|
||||
boost::algorithm::to_lower(name);
|
||||
|
@ -126,8 +125,8 @@ namespace MWScript
|
|||
|
||||
virtual void execute (Interpreter::Runtime& runtime)
|
||||
{
|
||||
const ESMS::CellList::ExtCells& extCells = MWBase::Environment::get().getWorld ()->getStore ().cells.extCells;
|
||||
for (ESMS::CellList::ExtCells::const_iterator it = extCells.begin(); it != extCells.end(); ++it)
|
||||
const MWWorld::CellList::ExtCells& extCells = MWBase::Environment::get().getWorld ()->getStore ().cells.extCells;
|
||||
for (MWWorld::CellList::ExtCells::const_iterator it = extCells.begin(); it != extCells.end(); ++it)
|
||||
{
|
||||
std::string name = it->second->mName;
|
||||
if (name != "")
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <stdexcept>
|
||||
|
||||
#include <components/interpreter/types.hpp>
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <exception>
|
||||
|
||||
#include <components/esm/loadscpt.hpp>
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <components/compiler/scanner.hpp>
|
||||
#include <components/compiler/context.hpp>
|
||||
|
@ -17,7 +17,7 @@
|
|||
|
||||
namespace MWScript
|
||||
{
|
||||
ScriptManager::ScriptManager (const ESMS::ESMStore& store, bool verbose,
|
||||
ScriptManager::ScriptManager (const MWWorld::ESMStore& store, bool verbose,
|
||||
Compiler::Context& compilerContext)
|
||||
: mErrorHandler (std::cerr), mStore (store), mVerbose (verbose),
|
||||
mCompilerContext (compilerContext), mParser (mErrorHandler, mCompilerContext),
|
||||
|
@ -125,7 +125,7 @@ namespace MWScript
|
|||
|
||||
std::pair<int, int> ScriptManager::compileAll()
|
||||
{
|
||||
typedef ESMS::ScriptListT<ESM::Script>::MapType Container;
|
||||
typedef MWWorld::ScriptListT<ESM::Script>::MapType Container;
|
||||
|
||||
const Container& scripts = mStore.scripts.list;
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
#include "globalscripts.hpp"
|
||||
|
||||
namespace ESMS
|
||||
namespace MWWorld
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ namespace MWScript
|
|||
class ScriptManager : public MWBase::ScriptManager
|
||||
{
|
||||
Compiler::StreamErrorHandler mErrorHandler;
|
||||
const ESMS::ESMStore& mStore;
|
||||
const MWWorld::ESMStore& mStore;
|
||||
bool mVerbose;
|
||||
Compiler::Context& mCompilerContext;
|
||||
Compiler::FileParser mParser;
|
||||
|
@ -50,7 +50,7 @@ namespace MWScript
|
|||
|
||||
public:
|
||||
|
||||
ScriptManager (const ESMS::ESMStore& store, bool verbose,
|
||||
ScriptManager (const MWWorld::ESMStore& store, bool verbose,
|
||||
Compiler::Context& compilerContext);
|
||||
|
||||
virtual void run (const std::string& name, Interpreter::Context& interpreterContext);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include <components/esm/loadnpc.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include <components/compiler/extensions.hpp>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include <OgreMath.h>
|
||||
#include <OgreSceneNode.h>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
#include <components/esm/loadcell.hpp>
|
||||
|
||||
#include <components/compiler/extensions.hpp>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <algorithm>
|
||||
#include <map>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
|
|
@ -5,14 +5,13 @@
|
|||
|
||||
#include <components/esm/loadskil.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "../mwmechanics/creaturestats.hpp"
|
||||
#include "../mwmechanics/npcstats.hpp"
|
||||
|
||||
#include "esmstore.hpp"
|
||||
#include "class.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
|
|
|
@ -4,15 +4,14 @@
|
|||
#include "../mwbase/windowmanager.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "../mwworld/player.hpp"
|
||||
#include "../mwworld/class.hpp"
|
||||
|
||||
#include "../mwmechanics/npcstats.hpp"
|
||||
|
||||
#include "../mwgui/bookwindow.hpp"
|
||||
#include "../mwgui/scrollwindow.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "player.hpp"
|
||||
#include "class.hpp"
|
||||
#include "esmstore.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#include "cells.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "class.hpp"
|
||||
#include "esmstore.hpp"
|
||||
#include "containerstore.hpp"
|
||||
|
||||
MWWorld::Ptr::CellStore *MWWorld::Cells::getCellStore (const ESM::Cell *cell)
|
||||
|
@ -85,7 +84,7 @@ MWWorld::Ptr MWWorld::Cells::getPtrAndCache (const std::string& name, Ptr::CellS
|
|||
return ptr;
|
||||
}
|
||||
|
||||
MWWorld::Cells::Cells (const ESMS::ESMStore& store, ESM::ESMReader& reader)
|
||||
MWWorld::Cells::Cells (const MWWorld::ESMStore& store, ESM::ESMReader& reader)
|
||||
: mStore (store), mReader (reader),
|
||||
mIdCache (20, std::pair<std::string, Ptr::CellStore *> ("", (Ptr::CellStore*)0)), /// \todo make cache size configurable
|
||||
mIdCacheIndex (0)
|
||||
|
@ -265,7 +264,7 @@ MWWorld::Ptr MWWorld::Cells::getPtr (const std::string& name)
|
|||
}
|
||||
|
||||
// Now try the other cells
|
||||
for (ESMS::CellList::IntCells::const_iterator iter = mStore.cells.intCells.begin();
|
||||
for (MWWorld::CellList::IntCells::const_iterator iter = mStore.cells.intCells.begin();
|
||||
iter!=mStore.cells.intCells.end(); ++iter)
|
||||
{
|
||||
Ptr::CellStore *cellStore = getCellStore (iter->second);
|
||||
|
@ -276,7 +275,7 @@ MWWorld::Ptr MWWorld::Cells::getPtr (const std::string& name)
|
|||
return ptr;
|
||||
}
|
||||
|
||||
for (ESMS::CellList::ExtCells::const_iterator iter = mStore.cells.extCells.begin();
|
||||
for (MWWorld::CellList::ExtCells::const_iterator iter = mStore.cells.extCells.begin();
|
||||
iter!=mStore.cells.extCells.end(); ++iter)
|
||||
{
|
||||
Ptr::CellStore *cellStore = getCellStore (iter->second);
|
||||
|
|
|
@ -11,17 +11,14 @@ namespace ESM
|
|||
class ESMReader;
|
||||
}
|
||||
|
||||
namespace ESM
|
||||
{
|
||||
class ESMStore;
|
||||
}
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
class ESMStore;
|
||||
|
||||
/// \brief Cell container
|
||||
class Cells
|
||||
{
|
||||
const ESMS::ESMStore& mStore;
|
||||
const MWWorld::ESMStore& mStore;
|
||||
ESM::ESMReader& mReader;
|
||||
std::map<std::string, CellStore> mInteriors;
|
||||
std::map<std::pair<int, int>, CellStore> mExteriors;
|
||||
|
@ -39,7 +36,7 @@ namespace MWWorld
|
|||
|
||||
public:
|
||||
|
||||
Cells (const ESMS::ESMStore& store, ESM::ESMReader& reader);
|
||||
Cells (const MWWorld::ESMStore& store, ESM::ESMReader& reader);
|
||||
///< \todo pass the dynamic part of the ESMStore isntead (once it is written) of the whole
|
||||
/// world
|
||||
|
||||
|
|
|
@ -2,12 +2,11 @@
|
|||
|
||||
#include <iostream>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "ptr.hpp"
|
||||
#include "esmstore.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
|
@ -16,7 +15,7 @@ namespace MWWorld
|
|||
mWaterLevel = cell->mWater;
|
||||
}
|
||||
|
||||
void CellStore::load (const ESMS::ESMStore &store, ESM::ESMReader &esm)
|
||||
void CellStore::load (const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
||||
{
|
||||
if (mState!=State_Loaded)
|
||||
{
|
||||
|
@ -31,7 +30,7 @@ namespace MWWorld
|
|||
}
|
||||
}
|
||||
|
||||
void CellStore::preload (const ESMS::ESMStore &store, ESM::ESMReader &esm)
|
||||
void CellStore::preload (const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
||||
{
|
||||
if (mState==State_Unloaded)
|
||||
{
|
||||
|
@ -41,7 +40,7 @@ namespace MWWorld
|
|||
}
|
||||
}
|
||||
|
||||
void CellStore::listRefs(const ESMS::ESMStore &store, ESM::ESMReader &esm)
|
||||
void CellStore::listRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
||||
{
|
||||
assert (cell);
|
||||
|
||||
|
@ -67,7 +66,7 @@ namespace MWWorld
|
|||
std::sort (mIds.begin(), mIds.end());
|
||||
}
|
||||
|
||||
void CellStore::loadRefs(const ESMS::ESMStore &store, ESM::ESMReader &esm)
|
||||
void CellStore::loadRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
||||
{
|
||||
assert (cell);
|
||||
|
||||
|
|
|
@ -8,14 +8,10 @@
|
|||
|
||||
#include "refdata.hpp"
|
||||
|
||||
namespace ESMS
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
class Ptr;
|
||||
class ESMStore;
|
||||
|
||||
/// A reference to one object (of any type) in a cell.
|
||||
///
|
||||
|
@ -122,9 +118,9 @@ namespace MWWorld
|
|||
CellRefList<ESM::Static> statics;
|
||||
CellRefList<ESM::Weapon> weapons;
|
||||
|
||||
void load (const ESMS::ESMStore &store, ESM::ESMReader &esm);
|
||||
void load (const MWWorld::ESMStore &store, ESM::ESMReader &esm);
|
||||
|
||||
void preload (const ESMS::ESMStore &store, ESM::ESMReader &esm);
|
||||
void preload (const MWWorld::ESMStore &store, ESM::ESMReader &esm);
|
||||
|
||||
/// Call functor (ref) for each reference. functor must return a bool. Returning
|
||||
/// false will abort the iteration.
|
||||
|
@ -183,9 +179,9 @@ namespace MWWorld
|
|||
}
|
||||
|
||||
/// Run through references and store IDs
|
||||
void listRefs(const ESMS::ESMStore &store, ESM::ESMReader &esm);
|
||||
void listRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm);
|
||||
|
||||
void loadRefs(const ESMS::ESMStore &store, ESM::ESMReader &esm);
|
||||
void loadRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::addImpl (const Ptr& ptr
|
|||
return it;
|
||||
}
|
||||
|
||||
void MWWorld::ContainerStore::fill (const ESM::InventoryList& items, const ESMS::ESMStore& store)
|
||||
void MWWorld::ContainerStore::fill (const ESM::InventoryList& items, const MWWorld::ESMStore& store)
|
||||
{
|
||||
for (std::vector<ESM::ContItem>::const_iterator iter (items.mList.begin()); iter!=items.mList.end();
|
||||
++iter)
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace MWWorld
|
|||
|
||||
public:
|
||||
|
||||
void fill (const ESM::InventoryList& items, const ESMS::ESMStore& store);
|
||||
void fill (const ESM::InventoryList& items, const MWWorld::ESMStore& store);
|
||||
///< Insert items into *this.
|
||||
|
||||
void clear();
|
||||
|
|
|
@ -1,31 +1,21 @@
|
|||
#include "esmstore.hpp"
|
||||
|
||||
#include <set>
|
||||
#include <iostream>
|
||||
#include "store.hpp"
|
||||
|
||||
using namespace std;
|
||||
using namespace ESM;
|
||||
using namespace ESMS;
|
||||
|
||||
/*
|
||||
static string toStr(int i)
|
||||
namespace MWWorld
|
||||
{
|
||||
char name[5];
|
||||
*((int*)name) = i;
|
||||
name[4] = 0;
|
||||
return std::string(name);
|
||||
}
|
||||
*/
|
||||
|
||||
void ESMStore::load(ESMReader &esm)
|
||||
void ESMStore::load(ESM::ESMReader &esm)
|
||||
{
|
||||
set<string> missing;
|
||||
std::set<std::string> missing;
|
||||
|
||||
ESM::Dialogue *dialogue = 0;
|
||||
|
||||
// Loop through all records
|
||||
while(esm.hasMoreRecs())
|
||||
{
|
||||
NAME n = esm.getRecName();
|
||||
ESM::NAME n = esm.getRecName();
|
||||
esm.getRecHeader();
|
||||
|
||||
// Look up the record type.
|
||||
|
@ -71,7 +61,8 @@ void ESMStore::load(ESMReader &esm)
|
|||
|
||||
if (n.val==ESM::REC_DIAL)
|
||||
{
|
||||
RecListCaseT<Dialogue>& recList = static_cast<RecListCaseT<Dialogue>& > (*it->second);
|
||||
RecListCaseT<ESM::Dialogue>& recList =
|
||||
static_cast<RecListCaseT<ESM::Dialogue>& > (*it->second);
|
||||
|
||||
ESM::Dialogue* d = recList.search (id);
|
||||
|
||||
|
@ -84,20 +75,22 @@ void ESMStore::load(ESMReader &esm)
|
|||
|
||||
// Insert the reference into the global lookup
|
||||
if(!id.empty() &&
|
||||
(n.val==REC_ACTI || n.val==REC_ALCH || n.val==REC_APPA || n.val==REC_ARMO ||
|
||||
n.val==REC_BOOK || n.val==REC_CLOT || n.val==REC_CONT || n.val==REC_CREA ||
|
||||
n.val==REC_DOOR || n.val==REC_INGR || n.val==REC_LEVC || n.val==REC_LEVI ||
|
||||
n.val==REC_LIGH || n.val==REC_LOCK || n.val==REC_MISC || n.val==REC_NPC_ ||
|
||||
n.val==REC_PROB || n.val==REC_REPA || n.val==REC_STAT || n.val==REC_WEAP)
|
||||
(n.val==ESM::REC_ACTI || n.val==ESM::REC_ALCH || n.val==ESM::REC_APPA || n.val==ESM::REC_ARMO ||
|
||||
n.val==ESM::REC_BOOK || n.val==ESM::REC_CLOT || n.val==ESM::REC_CONT || n.val==ESM::REC_CREA ||
|
||||
n.val==ESM::REC_DOOR || n.val==ESM::REC_INGR || n.val==ESM::REC_LEVC || n.val==ESM::REC_LEVI ||
|
||||
n.val==ESM::REC_LIGH || n.val==ESM::REC_LOCK || n.val==ESM::REC_MISC || n.val==ESM::REC_NPC_ ||
|
||||
n.val==ESM::REC_PROB || n.val==ESM::REC_REPA || n.val==ESM::REC_STAT || n.val==ESM::REC_WEAP)
|
||||
)
|
||||
all[id] = n.val;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < Attribute::Length; ++i)
|
||||
for (int i = 0; i < ESM::Attribute::Length; ++i)
|
||||
{
|
||||
Attribute::AttributeID id = Attribute::sAttributeIds[i];
|
||||
attributes.list.insert(std::make_pair(id, Attribute(id, Attribute::sGmstAttributeIds[i], Attribute::sGmstAttributeDescIds[i])));
|
||||
typedef ESM::Attribute EsmAttr;
|
||||
|
||||
EsmAttr::AttributeID id = EsmAttr::sAttributeIds[i];
|
||||
attributes.list.insert(std::make_pair(id, ESM::Attribute(id, EsmAttr::sGmstAttributeIds[i], EsmAttr::sGmstAttributeDescIds[i])));
|
||||
}
|
||||
|
||||
/* This information isn't needed on screen. But keep the code around
|
||||
|
@ -113,3 +106,5 @@ void ESMStore::load(ESMReader &esm)
|
|||
cout << endl;
|
||||
*/
|
||||
}
|
||||
|
||||
} // end namespace
|
145
apps/openmw/mwworld/esmstore.hpp
Normal file
145
apps/openmw/mwworld/esmstore.hpp
Normal file
|
@ -0,0 +1,145 @@
|
|||
#ifndef OPENMW_MWWORLD_STORE_H
|
||||
#define OPENMW_MWWORLD_STORE_H
|
||||
|
||||
/*
|
||||
The ESM storage module.
|
||||
|
||||
This is separate from the ESM loader module, located in esm/. It is
|
||||
also unaware of the cell loading and storage module.
|
||||
|
||||
The advantage of this, as with all other modularizations, is that
|
||||
you can replace the storage method later without touching the
|
||||
loading code. Cutting down dependencies also help on the general
|
||||
maintainability.
|
||||
*/
|
||||
|
||||
#include <components/esm/records.hpp>
|
||||
#include "reclists.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
|
||||
struct ESMStore
|
||||
{
|
||||
/* Lists all the list types. Mostly used for quick lookup on
|
||||
loading. The key is the record name (4 chars) parsed as a 32
|
||||
bit int. See esm/records.hpp for the complete list.
|
||||
*/
|
||||
RecListList recLists;
|
||||
|
||||
// Each individual list
|
||||
RecListT<ESM::Activator> activators;
|
||||
RecListWithIDT<ESM::Potion> potions;
|
||||
RecListT<ESM::Apparatus> appas;
|
||||
RecListT<ESM::Armor> armors;
|
||||
RecListT<ESM::BodyPart> bodyParts;
|
||||
RecListWithIDT<ESM::Book> books;
|
||||
RecListT<ESM::BirthSign> birthSigns;
|
||||
RecListT<ESM::Class> classes;
|
||||
RecListT<ESM::Clothing> clothes;
|
||||
RecListT<ESM::LoadCNTC> contChange;
|
||||
RecListT<ESM::Container> containers;
|
||||
RecListWithIDT<ESM::Creature> creatures;
|
||||
RecListT<ESM::LoadCREC> creaChange;
|
||||
RecListCaseT<ESM::Dialogue> dialogs;
|
||||
RecListT<ESM::Door> doors;
|
||||
RecListT<ESM::Enchantment> enchants;
|
||||
RecListT<ESM::Faction> factions;
|
||||
RecListT<ESM::Global> globals;
|
||||
RecListWithIDT<ESM::Ingredient> ingreds;
|
||||
RecListT<ESM::CreatureLevList> creatureLists;
|
||||
RecListT<ESM::ItemLevList> itemLists;
|
||||
RecListT<ESM::Light> lights;
|
||||
RecListT<ESM::Tool> lockpicks;
|
||||
RecListT<ESM::Miscellaneous> miscItems;
|
||||
RecListWithIDT<ESM::NPC> npcs;
|
||||
RecListT<ESM::LoadNPCC> npcChange;
|
||||
RecListT<ESM::Probe> probes;
|
||||
RecListT<ESM::Race> races;
|
||||
RecListT<ESM::Region> regions;
|
||||
RecListT<ESM::Repair> repairs;
|
||||
RecListT<ESM::SoundGenerator> soundGens;
|
||||
RecListT<ESM::Sound> sounds;
|
||||
RecListT<ESM::Spell> spells;
|
||||
RecListT<ESM::StartScript> startScripts;
|
||||
RecListT<ESM::Static> statics;
|
||||
RecListT<ESM::Weapon> weapons;
|
||||
|
||||
// Lists that need special rules
|
||||
CellList cells;
|
||||
RecListWithIDT<ESM::GameSetting> gameSettings;
|
||||
LandList lands;
|
||||
LTexList landTexts;
|
||||
ScriptListT<ESM::Script> scripts;
|
||||
IndexListT<ESM::MagicEffect> magicEffects;
|
||||
IndexListT<ESM::Skill> skills;
|
||||
//RecListT<ESM::Pathgrid> pathgrids;
|
||||
PathgridList pathgrids;
|
||||
|
||||
// Special entry which is hardcoded and not loaded from an ESM
|
||||
IndexListT<ESM::Attribute> attributes;
|
||||
|
||||
// Lookup of all IDs. Makes looking up references faster. Just
|
||||
// maps the id name to the record type.
|
||||
typedef std::map<std::string, int> AllMap;
|
||||
AllMap all;
|
||||
|
||||
// Look up the given ID in 'all'. Returns 0 if not found.
|
||||
int find(const std::string &id) const
|
||||
{
|
||||
AllMap::const_iterator it = all.find(id);
|
||||
if(it == all.end()) return 0;
|
||||
return it->second;
|
||||
}
|
||||
|
||||
ESMStore()
|
||||
{
|
||||
recLists[ESM::REC_ACTI] = &activators;
|
||||
recLists[ESM::REC_ALCH] = &potions;
|
||||
recLists[ESM::REC_APPA] = &appas;
|
||||
recLists[ESM::REC_ARMO] = &armors;
|
||||
recLists[ESM::REC_BODY] = &bodyParts;
|
||||
recLists[ESM::REC_BOOK] = &books;
|
||||
recLists[ESM::REC_BSGN] = &birthSigns;
|
||||
recLists[ESM::REC_CELL] = &cells;
|
||||
recLists[ESM::REC_CLAS] = &classes;
|
||||
recLists[ESM::REC_CLOT] = &clothes;
|
||||
recLists[ESM::REC_CNTC] = &contChange;
|
||||
recLists[ESM::REC_CONT] = &containers;
|
||||
recLists[ESM::REC_CREA] = &creatures;
|
||||
recLists[ESM::REC_CREC] = &creaChange;
|
||||
recLists[ESM::REC_DIAL] = &dialogs;
|
||||
recLists[ESM::REC_DOOR] = &doors;
|
||||
recLists[ESM::REC_ENCH] = &enchants;
|
||||
recLists[ESM::REC_FACT] = &factions;
|
||||
recLists[ESM::REC_GLOB] = &globals;
|
||||
recLists[ESM::REC_GMST] = &gameSettings;
|
||||
recLists[ESM::REC_INGR] = &ingreds;
|
||||
recLists[ESM::REC_LAND] = &lands;
|
||||
recLists[ESM::REC_LEVC] = &creatureLists;
|
||||
recLists[ESM::REC_LEVI] = &itemLists;
|
||||
recLists[ESM::REC_LIGH] = &lights;
|
||||
recLists[ESM::REC_LOCK] = &lockpicks;
|
||||
recLists[ESM::REC_LTEX] = &landTexts;
|
||||
recLists[ESM::REC_MISC] = &miscItems;
|
||||
recLists[ESM::REC_NPC_] = &npcs;
|
||||
recLists[ESM::REC_NPCC] = &npcChange;
|
||||
recLists[ESM::REC_PGRD] = &pathgrids;
|
||||
recLists[ESM::REC_PROB] = &probes;
|
||||
recLists[ESM::REC_RACE] = &races;
|
||||
recLists[ESM::REC_REGN] = ®ions;
|
||||
recLists[ESM::REC_REPA] = &repairs;
|
||||
recLists[ESM::REC_SCPT] = &scripts;
|
||||
recLists[ESM::REC_SNDG] = &soundGens;
|
||||
recLists[ESM::REC_SOUN] = &sounds;
|
||||
recLists[ESM::REC_SPEL] = &spells;
|
||||
recLists[ESM::REC_SSCR] = &startScripts;
|
||||
recLists[ESM::REC_STAT] = &statics;
|
||||
recLists[ESM::REC_WEAP] = &weapons;
|
||||
}
|
||||
|
||||
void load(ESM::ESMReader &esm);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <stdexcept>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
#include "esmstore.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
|
@ -27,9 +27,9 @@ namespace MWWorld
|
|||
return iter;
|
||||
}
|
||||
|
||||
Globals::Globals (const ESMS::ESMStore& store)
|
||||
Globals::Globals (const MWWorld::ESMStore& store)
|
||||
{
|
||||
for (ESMS::RecListT<ESM::Global>::MapType::const_iterator iter
|
||||
for (MWWorld::RecListT<ESM::Global>::MapType::const_iterator iter
|
||||
(store.globals.list.begin()); iter != store.globals.list.end(); ++iter)
|
||||
{
|
||||
char type = ' ';
|
||||
|
|
|
@ -6,13 +6,10 @@
|
|||
|
||||
#include <components/interpreter/types.hpp>
|
||||
|
||||
namespace ESMS
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
class ESMStore;
|
||||
|
||||
class Globals
|
||||
{
|
||||
public:
|
||||
|
@ -36,7 +33,7 @@ namespace MWWorld
|
|||
|
||||
public:
|
||||
|
||||
Globals (const ESMS::ESMStore& store);
|
||||
Globals (const MWWorld::ESMStore& store);
|
||||
|
||||
const Data& operator[] (const std::string& name) const;
|
||||
|
||||
|
|
|
@ -6,13 +6,12 @@
|
|||
|
||||
#include <components/esm/loadench.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "../mwmechanics/npcstats.hpp"
|
||||
|
||||
#include "esmstore.hpp"
|
||||
#include "class.hpp"
|
||||
|
||||
void MWWorld::InventoryStore::copySlots (const InventoryStore& store)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
#include "localscripts.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "esmstore.hpp"
|
||||
#include "cellstore.hpp"
|
||||
|
||||
namespace
|
||||
|
@ -23,7 +21,7 @@ namespace
|
|||
}
|
||||
}
|
||||
|
||||
MWWorld::LocalScripts::LocalScripts (const ESMS::ESMStore& store) : mStore (store) {}
|
||||
MWWorld::LocalScripts::LocalScripts (const MWWorld::ESMStore& store) : mStore (store) {}
|
||||
|
||||
void MWWorld::LocalScripts::setIgnore (const Ptr& ptr)
|
||||
{
|
||||
|
|
|
@ -6,13 +6,9 @@
|
|||
|
||||
#include "ptr.hpp"
|
||||
|
||||
namespace ESMS
|
||||
{
|
||||
struct ESMStore;
|
||||
}
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
struct ESMStore;
|
||||
class CellStore;
|
||||
|
||||
/// \brief List of active local scripts
|
||||
|
@ -21,11 +17,11 @@ namespace MWWorld
|
|||
std::list<std::pair<std::string, Ptr> > mScripts;
|
||||
std::list<std::pair<std::string, Ptr> >::iterator mIter;
|
||||
MWWorld::Ptr mIgnore;
|
||||
const ESMS::ESMStore& mStore;
|
||||
const MWWorld::ESMStore& mStore;
|
||||
|
||||
public:
|
||||
|
||||
LocalScripts (const ESMS::ESMStore& store);
|
||||
LocalScripts (const MWWorld::ESMStore& store);
|
||||
|
||||
void setIgnore (const Ptr& ptr);
|
||||
///< Mark a single reference for ignoring during iteration over local scripts (will revoke
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
|
||||
#include <boost/any.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "esmstore.hpp"
|
||||
#include "ptr.hpp"
|
||||
#include "cellstore.hpp"
|
||||
|
||||
|
@ -20,7 +19,7 @@ namespace MWWorld
|
|||
ManualRef& operator= (const ManualRef&);
|
||||
|
||||
template<typename T>
|
||||
bool create (const ESMS::RecListT<T>& list, const std::string& name)
|
||||
bool create (const MWWorld::RecListT<T>& list, const std::string& name)
|
||||
{
|
||||
if (const T *instance = list.search (name))
|
||||
{
|
||||
|
@ -37,7 +36,7 @@ namespace MWWorld
|
|||
}
|
||||
|
||||
template<typename T>
|
||||
bool create (const ESMS::RecListWithIDT<T>& list, const std::string& name)
|
||||
bool create (const MWWorld::RecListWithIDT<T>& list, const std::string& name)
|
||||
{
|
||||
if (const T *instance = list.search (name))
|
||||
{
|
||||
|
@ -55,7 +54,7 @@ namespace MWWorld
|
|||
|
||||
public:
|
||||
|
||||
ManualRef (const ESMS::ESMStore& store, const std::string& name)
|
||||
ManualRef (const MWWorld::ESMStore& store, const std::string& name)
|
||||
{
|
||||
// create
|
||||
if (!create (store.activators, name) &&
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
#include "player.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -9,6 +8,7 @@
|
|||
#include "../mwmechanics/movement.hpp"
|
||||
#include "../mwmechanics/npcstats.hpp"
|
||||
|
||||
#include "esmstore.hpp"
|
||||
#include "class.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef _GAME_ESM_RECLISTS_H
|
||||
#define _GAME_ESM_RECLISTS_H
|
||||
#ifndef OPENMW_MWWORLD_RECLISTS_H
|
||||
#define OPENMW_MWWORLD_RECLISTS_H
|
||||
|
||||
#include "components/esm/records.hpp"
|
||||
#include <components/esm/records.hpp>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
@ -10,21 +10,17 @@
|
|||
#include <cassert>
|
||||
#include <stdexcept>
|
||||
#include <iterator>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
using namespace boost::algorithm;
|
||||
|
||||
namespace ESMS
|
||||
namespace MWWorld
|
||||
{
|
||||
using namespace ESM;
|
||||
|
||||
struct RecList
|
||||
{
|
||||
virtual ~RecList() {}
|
||||
|
||||
virtual void load(ESMReader &esm, const std::string &id) = 0;
|
||||
virtual void load(ESM::ESMReader &esm, const std::string &id) = 0;
|
||||
virtual int getSize() = 0;
|
||||
virtual void listIdentifier (std::vector<std::string>& identifier) const = 0;
|
||||
|
||||
|
@ -51,7 +47,7 @@ namespace ESMS
|
|||
MapType list;
|
||||
|
||||
// Load one object of this type
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
std::string id2 = toLower (id);
|
||||
list[id2].load(esm);
|
||||
|
@ -102,7 +98,7 @@ namespace ESMS
|
|||
MapType list;
|
||||
|
||||
// Load one object of this type
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
//std::string id2 = toLower (id);
|
||||
|
||||
|
@ -170,7 +166,7 @@ namespace ESMS
|
|||
MapType list;
|
||||
|
||||
// Load one object of this type
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
std::string id2 = toLower (id);
|
||||
list[id2].mId = id2;
|
||||
|
@ -216,7 +212,7 @@ namespace ESMS
|
|||
virtual ~LTexList() {}
|
||||
|
||||
// TODO: For multiple ESM/ESP files we need one list per file.
|
||||
std::vector<LandTexture> ltex;
|
||||
std::vector<ESM::LandTexture> ltex;
|
||||
|
||||
LTexList()
|
||||
{
|
||||
|
@ -224,7 +220,7 @@ namespace ESMS
|
|||
ltex.reserve(128);
|
||||
}
|
||||
|
||||
const LandTexture* search(size_t index) const
|
||||
const ESM::LandTexture* search(size_t index) const
|
||||
{
|
||||
assert(index < ltex.size());
|
||||
return <ex.at(index);
|
||||
|
@ -235,9 +231,9 @@ namespace ESMS
|
|||
|
||||
virtual void listIdentifier (std::vector<std::string>& identifier) const {}
|
||||
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
LandTexture lt;
|
||||
ESM::LandTexture lt;
|
||||
lt.load(esm);
|
||||
lt.mId = id;
|
||||
|
||||
|
@ -265,7 +261,7 @@ namespace ESMS
|
|||
|
||||
// Map containing all landscapes
|
||||
typedef std::pair<int, int> LandCoord;
|
||||
typedef std::map<LandCoord, Land*> LandMap;
|
||||
typedef std::map<LandCoord, ESM::Land*> LandMap;
|
||||
LandMap lands;
|
||||
|
||||
int count;
|
||||
|
@ -275,7 +271,7 @@ namespace ESMS
|
|||
virtual void listIdentifier (std::vector<std::string>& identifier) const {}
|
||||
|
||||
// Find land for the given coordinates. Return null if no mData.
|
||||
Land *search(int x, int y) const
|
||||
ESM::Land *search(int x, int y) const
|
||||
{
|
||||
LandMap::const_iterator itr = lands.find(std::make_pair (x, y));
|
||||
if ( itr == lands.end() )
|
||||
|
@ -286,13 +282,13 @@ namespace ESMS
|
|||
return itr->second;
|
||||
}
|
||||
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
count++;
|
||||
|
||||
// Create the structure and load it. This actually skips the
|
||||
// landscape data and remembers the file position for later.
|
||||
Land *land = new Land();
|
||||
ESM::Land *land = new ESM::Land();
|
||||
land->load(esm);
|
||||
|
||||
// Store the structure
|
||||
|
@ -404,7 +400,7 @@ namespace ESMS
|
|||
return 0;
|
||||
}
|
||||
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
count++;
|
||||
|
||||
|
@ -458,7 +454,7 @@ namespace ESMS
|
|||
// do nothing
|
||||
}
|
||||
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
count++;
|
||||
ESM::Pathgrid *grid = new ESM::Pathgrid;
|
||||
|
@ -473,9 +469,9 @@ namespace ESMS
|
|||
}
|
||||
}
|
||||
|
||||
Pathgrid *find(int cellX, int cellY, const std::string &cellName) const
|
||||
ESM::Pathgrid *find(int cellX, int cellY, const std::string &cellName) const
|
||||
{
|
||||
Pathgrid *result = search(cellX, cellY, cellName);
|
||||
ESM::Pathgrid *result = search(cellX, cellY, cellName);
|
||||
if (!result)
|
||||
{
|
||||
throw std::runtime_error("no pathgrid found for cell " + cellName);
|
||||
|
@ -483,9 +479,9 @@ namespace ESMS
|
|||
return result;
|
||||
}
|
||||
|
||||
Pathgrid *search(int cellX, int cellY, const std::string &cellName) const
|
||||
ESM::Pathgrid *search(int cellX, int cellY, const std::string &cellName) const
|
||||
{
|
||||
Pathgrid *result = NULL;
|
||||
ESM::Pathgrid *result = NULL;
|
||||
if (cellX == 0 && cellY == 0) // possibly interior
|
||||
{
|
||||
IntGrids::const_iterator it = intGrids.find(cellName);
|
||||
|
@ -501,7 +497,7 @@ namespace ESMS
|
|||
return result;
|
||||
}
|
||||
|
||||
Pathgrid *search(const ESM::Cell &cell) const
|
||||
ESM::Pathgrid *search(const ESM::Cell &cell) const
|
||||
{
|
||||
int cellX, cellY;
|
||||
if (cell.mData.mFlags & ESM::Cell::Interior)
|
||||
|
@ -527,7 +523,7 @@ namespace ESMS
|
|||
MapType list;
|
||||
|
||||
// Load one object of this type
|
||||
void load(ESMReader &esm, const std::string &id)
|
||||
void load(ESM::ESMReader &esm, const std::string &id)
|
||||
{
|
||||
X ref;
|
||||
ref.load (esm);
|
||||
|
@ -579,7 +575,7 @@ namespace ESMS
|
|||
|
||||
MapType list;
|
||||
|
||||
void load(ESMReader &esm)
|
||||
void load(ESM::ESMReader &esm)
|
||||
{
|
||||
X ref;
|
||||
ref.load (esm);
|
||||
|
@ -620,10 +616,5 @@ namespace ESMS
|
|||
return object;
|
||||
}
|
||||
};
|
||||
|
||||
/* We need special lists for:
|
||||
|
||||
Path grids
|
||||
*/
|
||||
}
|
||||
#endif
|
|
@ -1,6 +1,5 @@
|
|||
#include "scene.hpp"
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp" /// FIXME
|
||||
|
@ -10,6 +9,7 @@
|
|||
|
||||
#include "player.hpp"
|
||||
#include "localscripts.hpp"
|
||||
#include "esmstore.hpp"
|
||||
|
||||
#include "cellfunctors.hpp"
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/soundmanager.hpp"
|
||||
|
@ -14,6 +12,7 @@
|
|||
#include "../mwrender/renderingmanager.hpp"
|
||||
|
||||
#include "player.hpp"
|
||||
#include "esmstore.hpp"
|
||||
|
||||
using namespace Ogre;
|
||||
using namespace MWWorld;
|
||||
|
|
|
@ -20,7 +20,7 @@ using namespace Ogre;
|
|||
namespace
|
||||
{
|
||||
template<typename T>
|
||||
void listCellScripts (const ESMS::ESMStore& store,
|
||||
void listCellScripts (const MWWorld::ESMStore& store,
|
||||
MWWorld::CellRefList<T>& cellRefList, MWWorld::LocalScripts& localScripts,
|
||||
MWWorld::Ptr::CellStore *cell)
|
||||
{
|
||||
|
@ -228,12 +228,12 @@ namespace MWWorld
|
|||
return cell;
|
||||
|
||||
// didn't work -> now check for regions
|
||||
std::string cellName2 = ESMS::RecListT<ESM::Region>::toLower (cellName);
|
||||
std::string cellName2 = MWWorld::RecListT<ESM::Region>::toLower (cellName);
|
||||
|
||||
for (ESMS::RecListT<ESM::Region>::MapType::const_iterator iter (mStore.regions.list.begin());
|
||||
for (MWWorld::RecListT<ESM::Region>::MapType::const_iterator iter (mStore.regions.list.begin());
|
||||
iter!=mStore.regions.list.end(); ++iter)
|
||||
{
|
||||
if (ESMS::RecListT<ESM::Region>::toLower (iter->second.mName)==cellName2)
|
||||
if (MWWorld::RecListT<ESM::Region>::toLower (iter->second.mName)==cellName2)
|
||||
{
|
||||
if (const ESM::Cell *cell = mStore.cells.searchExtByRegion (iter->first))
|
||||
return cell;
|
||||
|
@ -260,7 +260,7 @@ namespace MWWorld
|
|||
return *mPlayer;
|
||||
}
|
||||
|
||||
const ESMS::ESMStore& World::getStore() const
|
||||
const MWWorld::ESMStore& World::getStore() const
|
||||
{
|
||||
return mStore;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
#ifndef GAME_MWWORLD_WORLDIMP_H
|
||||
#define GAME_MWWORLD_WORLDIMP_H
|
||||
|
||||
#include <components/esm_store/store.hpp>
|
||||
|
||||
#include "../mwrender/debugging.hpp"
|
||||
|
||||
#include "ptr.hpp"
|
||||
#include "scene.hpp"
|
||||
#include "esmstore.hpp"
|
||||
#include "physicssystem.hpp"
|
||||
#include "cells.hpp"
|
||||
#include "localscripts.hpp"
|
||||
|
@ -56,7 +55,7 @@ namespace MWWorld
|
|||
MWWorld::Scene *mWorldScene;
|
||||
MWWorld::Player *mPlayer;
|
||||
ESM::ESMReader mEsm;
|
||||
ESMS::ESMStore mStore;
|
||||
MWWorld::ESMStore mStore;
|
||||
LocalScripts mLocalScripts;
|
||||
MWWorld::Globals *mGlobalVariables;
|
||||
MWWorld::PhysicsSystem *mPhysics;
|
||||
|
@ -124,7 +123,7 @@ namespace MWWorld
|
|||
|
||||
virtual Player& getPlayer();
|
||||
|
||||
virtual const ESMS::ESMStore& getStore() const;
|
||||
virtual const MWWorld::ESMStore& getStore() const;
|
||||
|
||||
virtual ESM::ESMReader& getEsmReader();
|
||||
|
||||
|
|
|
@ -34,10 +34,6 @@ add_component_dir (file_finder
|
|||
file_finder filename_less search
|
||||
)
|
||||
|
||||
add_component_dir (esm_store
|
||||
reclists store
|
||||
)
|
||||
|
||||
add_component_dir (esm
|
||||
attr defs esmcommon esmreader esmwriter loadacti loadalch loadappa loadarmo loadbody loadbook loadbsgn loadcell
|
||||
loadclas loadclot loadcont loadcrea loadcrec loaddial loaddoor loadench loadfact loadglob loadgmst
|
||||
|
|
|
@ -1,146 +0,0 @@
|
|||
#ifndef _GAME_ESM_STORE_H
|
||||
#define _GAME_ESM_STORE_H
|
||||
|
||||
/*
|
||||
The ESM storage module.
|
||||
|
||||
This is separate from the ESM loader module, located in esm/. It is
|
||||
also unaware of the cell loading and storage module.
|
||||
|
||||
The advantage of this, as with all other modularizations, is that
|
||||
you can replace the storage method later without touching the
|
||||
loading code. Cutting down dependencies also help on the general
|
||||
maintainability.
|
||||
*/
|
||||
|
||||
#include "components/esm/records.hpp"
|
||||
#include "reclists.hpp"
|
||||
|
||||
namespace ESMS
|
||||
{
|
||||
using namespace ESM;
|
||||
|
||||
struct ESMStore
|
||||
{
|
||||
/* Lists all the list types. Mostly used for quick lookup on
|
||||
loading. The key is the record name (4 chars) parsed as a 32
|
||||
bit int. See esm/records.hpp for the complete list.
|
||||
*/
|
||||
RecListList recLists;
|
||||
|
||||
// Each individual list
|
||||
RecListT<Activator> activators;
|
||||
RecListWithIDT<Potion> potions;
|
||||
RecListT<Apparatus> appas;
|
||||
RecListT<Armor> armors;
|
||||
RecListT<BodyPart> bodyParts;
|
||||
RecListWithIDT<Book> books;
|
||||
RecListT<BirthSign> birthSigns;
|
||||
RecListT<Class> classes;
|
||||
RecListT<Clothing> clothes;
|
||||
RecListT<LoadCNTC> contChange;
|
||||
RecListT<Container> containers;
|
||||
RecListWithIDT<Creature> creatures;
|
||||
RecListT<LoadCREC> creaChange;
|
||||
RecListCaseT<Dialogue> dialogs;
|
||||
RecListT<Door> doors;
|
||||
RecListT<Enchantment> enchants;
|
||||
RecListT<Faction> factions;
|
||||
RecListT<Global> globals;
|
||||
RecListWithIDT<Ingredient> ingreds;
|
||||
RecListT<CreatureLevList> creatureLists;
|
||||
RecListT<ItemLevList> itemLists;
|
||||
RecListT<Light> lights;
|
||||
RecListT<Tool> lockpicks;
|
||||
RecListT<Miscellaneous> miscItems;
|
||||
RecListWithIDT<NPC> npcs;
|
||||
RecListT<LoadNPCC> npcChange;
|
||||
RecListT<Probe> probes;
|
||||
RecListT<Race> races;
|
||||
RecListT<Region> regions;
|
||||
RecListT<Repair> repairs;
|
||||
RecListT<SoundGenerator> soundGens;
|
||||
RecListT<Sound> sounds;
|
||||
RecListT<Spell> spells;
|
||||
RecListT<StartScript> startScripts;
|
||||
RecListT<Static> statics;
|
||||
RecListT<Weapon> weapons;
|
||||
|
||||
// Lists that need special rules
|
||||
CellList cells;
|
||||
RecListWithIDT<GameSetting> gameSettings;
|
||||
LandList lands;
|
||||
LTexList landTexts;
|
||||
ScriptListT<Script> scripts;
|
||||
IndexListT<MagicEffect> magicEffects;
|
||||
IndexListT<Skill> skills;
|
||||
//RecListT<Pathgrid> pathgrids;
|
||||
PathgridList pathgrids;
|
||||
|
||||
// Special entry which is hardcoded and not loaded from an ESM
|
||||
IndexListT<Attribute> attributes;
|
||||
|
||||
// Lookup of all IDs. Makes looking up references faster. Just
|
||||
// maps the id name to the record type.
|
||||
typedef std::map<std::string, int> AllMap;
|
||||
AllMap all;
|
||||
|
||||
// Look up the given ID in 'all'. Returns 0 if not found.
|
||||
int find(const std::string &id) const
|
||||
{
|
||||
AllMap::const_iterator it = all.find(id);
|
||||
if(it == all.end()) return 0;
|
||||
return it->second;
|
||||
}
|
||||
|
||||
ESMStore()
|
||||
{
|
||||
recLists[REC_ACTI] = &activators;
|
||||
recLists[REC_ALCH] = &potions;
|
||||
recLists[REC_APPA] = &appas;
|
||||
recLists[REC_ARMO] = &armors;
|
||||
recLists[REC_BODY] = &bodyParts;
|
||||
recLists[REC_BOOK] = &books;
|
||||
recLists[REC_BSGN] = &birthSigns;
|
||||
recLists[REC_CELL] = &cells;
|
||||
recLists[REC_CLAS] = &classes;
|
||||
recLists[REC_CLOT] = &clothes;
|
||||
recLists[REC_CNTC] = &contChange;
|
||||
recLists[REC_CONT] = &containers;
|
||||
recLists[REC_CREA] = &creatures;
|
||||
recLists[REC_CREC] = &creaChange;
|
||||
recLists[REC_DIAL] = &dialogs;
|
||||
recLists[REC_DOOR] = &doors;
|
||||
recLists[REC_ENCH] = &enchants;
|
||||
recLists[REC_FACT] = &factions;
|
||||
recLists[REC_GLOB] = &globals;
|
||||
recLists[REC_GMST] = &gameSettings;
|
||||
recLists[REC_INGR] = &ingreds;
|
||||
recLists[REC_LAND] = &lands;
|
||||
recLists[REC_LEVC] = &creatureLists;
|
||||
recLists[REC_LEVI] = &itemLists;
|
||||
recLists[REC_LIGH] = &lights;
|
||||
recLists[REC_LOCK] = &lockpicks;
|
||||
recLists[REC_LTEX] = &landTexts;
|
||||
recLists[REC_MISC] = &miscItems;
|
||||
recLists[REC_NPC_] = &npcs;
|
||||
recLists[REC_NPCC] = &npcChange;
|
||||
recLists[REC_PGRD] = &pathgrids;
|
||||
recLists[REC_PROB] = &probes;
|
||||
recLists[REC_RACE] = &races;
|
||||
recLists[REC_REGN] = ®ions;
|
||||
recLists[REC_REPA] = &repairs;
|
||||
recLists[REC_SCPT] = &scripts;
|
||||
recLists[REC_SNDG] = &soundGens;
|
||||
recLists[REC_SOUN] = &sounds;
|
||||
recLists[REC_SPEL] = &spells;
|
||||
recLists[REC_SSCR] = &startScripts;
|
||||
recLists[REC_STAT] = &statics;
|
||||
recLists[REC_WEAP] = &weapons;
|
||||
}
|
||||
|
||||
void load(ESMReader &esm);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue