forked from teamnwah/openmw-tes3coop
resolving m prefix/ESMStore movement
This commit is contained in:
commit
d205723a17
50 changed files with 788 additions and 775 deletions
|
@ -39,9 +39,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||||
ptr.get<ESM::Activator>();
|
ptr.get<ESM::Activator>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||||
ptr.get<ESM::Activator>();
|
ptr.get<ESM::Activator>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Activator::getScript (const MWWorld::Ptr& ptr) const
|
std::string Activator::getScript (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -61,7 +61,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||||
ptr.get<ESM::Activator>();
|
ptr.get<ESM::Activator>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Activator::registerSelf()
|
void Activator::registerSelf()
|
||||||
|
@ -76,7 +76,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||||
ptr.get<ESM::Activator>();
|
ptr.get<ESM::Activator>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Activator::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Activator::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -85,11 +85,11 @@ namespace MWClass
|
||||||
ptr.get<ESM::Activator>();
|
ptr.get<ESM::Activator>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
@ -101,6 +101,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||||
ptr.get<ESM::Activator>();
|
ptr.get<ESM::Activator>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.activators.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mActivators.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,9 +42,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Apparatus::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Apparatus::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -75,7 +75,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Apparatus::getValue (const MWWorld::Ptr& ptr) const
|
int Apparatus::getValue (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -83,7 +83,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Apparatus::registerSelf()
|
void Apparatus::registerSelf()
|
||||||
|
@ -108,7 +108,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Apparatus::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Apparatus::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -116,7 +116,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Apparatus::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Apparatus::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -125,17 +125,17 @@ namespace MWClass
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->base->mData.mQuality);
|
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->mBase->mData.mQuality);
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
|
@ -154,6 +154,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||||
ptr.get<ESM::Apparatus>();
|
ptr.get<ESM::Apparatus>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.appas.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mAppas.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,9 +45,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Armor::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Armor::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -82,7 +82,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return ref->base->mData.mHealth;
|
return ref->mBase->mData.mHealth;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Armor::getScript (const MWWorld::Ptr& ptr) const
|
std::string Armor::getScript (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -90,7 +90,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::vector<int>, bool> Armor::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
std::pair<std::vector<int>, bool> Armor::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -118,7 +118,7 @@ namespace MWClass
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i=0; i<size; ++i)
|
for (int i=0; i<size; ++i)
|
||||||
if (sMapping[i][0]==ref->base->mData.mType)
|
if (sMapping[i][0]==ref->mBase->mData.mType)
|
||||||
{
|
{
|
||||||
slots.push_back (int (sMapping[i][1]));
|
slots.push_back (int (sMapping[i][1]));
|
||||||
break;
|
break;
|
||||||
|
@ -134,7 +134,7 @@ namespace MWClass
|
||||||
|
|
||||||
std::string typeGmst;
|
std::string typeGmst;
|
||||||
|
|
||||||
switch (ref->base->mData.mType)
|
switch (ref->mBase->mData.mType)
|
||||||
{
|
{
|
||||||
case ESM::Armor::Helmet: typeGmst = "iHelmWeight"; break;
|
case ESM::Armor::Helmet: typeGmst = "iHelmWeight"; break;
|
||||||
case ESM::Armor::Cuirass: typeGmst = "iCuirassWeight"; break;
|
case ESM::Armor::Cuirass: typeGmst = "iCuirassWeight"; break;
|
||||||
|
@ -155,11 +155,11 @@ namespace MWClass
|
||||||
float iWeight = MWBase::Environment::get().getWorld()->getStore().gameSettings.find (typeGmst)->getInt();
|
float iWeight = MWBase::Environment::get().getWorld()->getStore().gameSettings.find (typeGmst)->getInt();
|
||||||
|
|
||||||
if (iWeight * MWBase::Environment::get().getWorld()->getStore().gameSettings.find ("fLightMaxMod")->getFloat()>=
|
if (iWeight * MWBase::Environment::get().getWorld()->getStore().gameSettings.find ("fLightMaxMod")->getFloat()>=
|
||||||
ref->base->mData.mWeight)
|
ref->mBase->mData.mWeight)
|
||||||
return ESM::Skill::LightArmor;
|
return ESM::Skill::LightArmor;
|
||||||
|
|
||||||
if (iWeight * MWBase::Environment::get().getWorld()->getStore().gameSettings.find ("fMedMaxMod")->getFloat()>=
|
if (iWeight * MWBase::Environment::get().getWorld()->getStore().gameSettings.find ("fMedMaxMod")->getFloat()>=
|
||||||
ref->base->mData.mWeight)
|
ref->mBase->mData.mWeight)
|
||||||
return ESM::Skill::MediumArmor;
|
return ESM::Skill::MediumArmor;
|
||||||
|
|
||||||
return ESM::Skill::HeavyArmor;
|
return ESM::Skill::HeavyArmor;
|
||||||
|
@ -170,7 +170,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Armor::registerSelf()
|
void Armor::registerSelf()
|
||||||
|
@ -207,7 +207,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Armor::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Armor::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -215,7 +215,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Armor::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Armor::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -224,8 +224,8 @@ namespace MWClass
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
|
@ -239,20 +239,20 @@ namespace MWClass
|
||||||
else
|
else
|
||||||
typeText = "#{sHeavy}";
|
typeText = "#{sHeavy}";
|
||||||
|
|
||||||
text += "\n#{sArmorRating}: " + MWGui::ToolTips::toString(ref->base->mData.mArmor);
|
text += "\n#{sArmorRating}: " + MWGui::ToolTips::toString(ref->mBase->mData.mArmor);
|
||||||
|
|
||||||
/// \todo store the current armor health somewhere
|
/// \todo store the current armor health somewhere
|
||||||
text += "\n#{sCondition}: " + MWGui::ToolTips::toString(ref->base->mData.mHealth);
|
text += "\n#{sCondition}: " + MWGui::ToolTips::toString(ref->mBase->mData.mHealth);
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight) + " (" + typeText + ")";
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight) + " (" + typeText + ")";
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.enchant = ref->base->mEnchant;
|
info.enchant = ref->mBase->mEnchant;
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return ref->base->mEnchant;
|
return ref->mBase->mEnchant;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Armor::use (const MWWorld::Ptr& ptr) const
|
boost::shared_ptr<MWWorld::Action> Armor::use (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -282,6 +282,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||||
ptr.get<ESM::Armor>();
|
ptr.get<ESM::Armor>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.armors.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mArmors.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,9 +41,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Book::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Book::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -70,7 +70,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Book::getValue (const MWWorld::Ptr& ptr) const
|
int Book::getValue (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -78,7 +78,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Book::registerSelf()
|
void Book::registerSelf()
|
||||||
|
@ -103,7 +103,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Book::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Book::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -111,7 +111,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Book::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Book::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -120,20 +120,20 @@ namespace MWClass
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.enchant = ref->base->mEnchant;
|
info.enchant = ref->mBase->mEnchant;
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return ref->base->mEnchant;
|
return ref->mBase->mEnchant;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Book::use (const MWWorld::Ptr& ptr) const
|
boost::shared_ptr<MWWorld::Action> Book::use (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -159,6 +159,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||||
ptr.get<ESM::Book>();
|
ptr.get<ESM::Book>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.books.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mBooks.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Clothing::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Clothing::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -75,7 +75,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::vector<int>, bool> Clothing::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
std::pair<std::vector<int>, bool> Clothing::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -85,7 +85,7 @@ namespace MWClass
|
||||||
|
|
||||||
std::vector<int> slots;
|
std::vector<int> slots;
|
||||||
|
|
||||||
if (ref->base->mData.mType==ESM::Clothing::Ring)
|
if (ref->mBase->mData.mType==ESM::Clothing::Ring)
|
||||||
{
|
{
|
||||||
slots.push_back (int (MWWorld::InventoryStore::Slot_LeftRing));
|
slots.push_back (int (MWWorld::InventoryStore::Slot_LeftRing));
|
||||||
slots.push_back (int (MWWorld::InventoryStore::Slot_RightRing));
|
slots.push_back (int (MWWorld::InventoryStore::Slot_RightRing));
|
||||||
|
@ -108,7 +108,7 @@ namespace MWClass
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i=0; i<size; ++i)
|
for (int i=0; i<size; ++i)
|
||||||
if (sMapping[i][0]==ref->base->mData.mType)
|
if (sMapping[i][0]==ref->mBase->mData.mType)
|
||||||
{
|
{
|
||||||
slots.push_back (int (sMapping[i][1]));
|
slots.push_back (int (sMapping[i][1]));
|
||||||
break;
|
break;
|
||||||
|
@ -123,7 +123,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
if (ref->base->mData.mType==ESM::Clothing::Shoes)
|
if (ref->mBase->mData.mType==ESM::Clothing::Shoes)
|
||||||
return ESM::Skill::Unarmored;
|
return ESM::Skill::Unarmored;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -134,7 +134,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Clothing::registerSelf()
|
void Clothing::registerSelf()
|
||||||
|
@ -149,7 +149,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
if (ref->base->mData.mType == 8)
|
if (ref->mBase->mData.mType == 8)
|
||||||
{
|
{
|
||||||
return std::string("Item Ring Up");
|
return std::string("Item Ring Up");
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
if (ref->base->mData.mType == 8)
|
if (ref->mBase->mData.mType == 8)
|
||||||
{
|
{
|
||||||
return std::string("Item Ring Down");
|
return std::string("Item Ring Down");
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Clothing::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Clothing::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -181,7 +181,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Clothing::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Clothing::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -190,20 +190,20 @@ namespace MWClass
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.enchant = ref->base->mEnchant;
|
info.enchant = ref->mBase->mEnchant;
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return ref->base->mEnchant;
|
return ref->mBase->mEnchant;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Clothing::use (const MWWorld::Ptr& ptr) const
|
boost::shared_ptr<MWWorld::Action> Clothing::use (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -233,6 +233,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||||
ptr.get<ESM::Clothing>();
|
ptr.get<ESM::Clothing>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.clothes.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mClothes.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,9 +74,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -149,7 +149,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWWorld::ContainerStore& Container::getContainerStore (const MWWorld::Ptr& ptr)
|
MWWorld::ContainerStore& Container::getContainerStore (const MWWorld::Ptr& ptr)
|
||||||
|
@ -165,7 +165,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Container::registerSelf()
|
void Container::registerSelf()
|
||||||
|
@ -180,7 +180,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Container::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Container::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -189,17 +189,17 @@ namespace MWClass
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName;
|
info.caption = ref->mBase->mName;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
if (ref->ref.mLockLevel > 0)
|
if (ref->mRef.mLockLevel > 0)
|
||||||
text += "\n#{sLockLevel}: " + MWGui::ToolTips::toString(ref->ref.mLockLevel);
|
text += "\n#{sLockLevel}: " + MWGui::ToolTips::toString(ref->mRef.mLockLevel);
|
||||||
if (ref->ref.mTrap != "")
|
if (ref->mRef.mTrap != "")
|
||||||
text += "\n#{sTrapped}";
|
text += "\n#{sTrapped}";
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -212,7 +212,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
|
||||||
return ref->base->mWeight;
|
return ref->mBase->mWeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Container::getEncumbrance (const MWWorld::Ptr& ptr) const
|
float Container::getEncumbrance (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -239,6 +239,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.containers.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mContainers.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,28 +48,28 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
// creature stats
|
// creature stats
|
||||||
data->mCreatureStats.getAttribute(0).set (ref->base->mData.mStrength);
|
data->mCreatureStats.getAttribute(0).set (ref->mBase->mData.mStrength);
|
||||||
data->mCreatureStats.getAttribute(1).set (ref->base->mData.mIntelligence);
|
data->mCreatureStats.getAttribute(1).set (ref->mBase->mData.mIntelligence);
|
||||||
data->mCreatureStats.getAttribute(2).set (ref->base->mData.mWillpower);
|
data->mCreatureStats.getAttribute(2).set (ref->mBase->mData.mWillpower);
|
||||||
data->mCreatureStats.getAttribute(3).set (ref->base->mData.mAgility);
|
data->mCreatureStats.getAttribute(3).set (ref->mBase->mData.mAgility);
|
||||||
data->mCreatureStats.getAttribute(4).set (ref->base->mData.mSpeed);
|
data->mCreatureStats.getAttribute(4).set (ref->mBase->mData.mSpeed);
|
||||||
data->mCreatureStats.getAttribute(5).set (ref->base->mData.mEndurance);
|
data->mCreatureStats.getAttribute(5).set (ref->mBase->mData.mEndurance);
|
||||||
data->mCreatureStats.getAttribute(6).set (ref->base->mData.mPersonality);
|
data->mCreatureStats.getAttribute(6).set (ref->mBase->mData.mPersonality);
|
||||||
data->mCreatureStats.getAttribute(7).set (ref->base->mData.mLuck);
|
data->mCreatureStats.getAttribute(7).set (ref->mBase->mData.mLuck);
|
||||||
data->mCreatureStats.setHealth (ref->base->mData.mHealth);
|
data->mCreatureStats.setHealth (ref->mBase->mData.mHealth);
|
||||||
data->mCreatureStats.setMagicka (ref->base->mData.mMana);
|
data->mCreatureStats.setMagicka (ref->mBase->mData.mMana);
|
||||||
data->mCreatureStats.setFatigue (ref->base->mData.mFatigue);
|
data->mCreatureStats.setFatigue (ref->mBase->mData.mFatigue);
|
||||||
|
|
||||||
data->mCreatureStats.setLevel(ref->base->mData.mLevel);
|
data->mCreatureStats.setLevel(ref->mBase->mData.mLevel);
|
||||||
|
|
||||||
data->mCreatureStats.setHello(ref->base->mAiData.mHello);
|
data->mCreatureStats.setHello(ref->mBase->mAiData.mHello);
|
||||||
data->mCreatureStats.setFight(ref->base->mAiData.mFight);
|
data->mCreatureStats.setFight(ref->mBase->mAiData.mFight);
|
||||||
data->mCreatureStats.setFlee(ref->base->mAiData.mFlee);
|
data->mCreatureStats.setFlee(ref->mBase->mAiData.mFlee);
|
||||||
data->mCreatureStats.setAlarm(ref->base->mAiData.mAlarm);
|
data->mCreatureStats.setAlarm(ref->mBase->mAiData.mAlarm);
|
||||||
|
|
||||||
// spells
|
// spells
|
||||||
for (std::vector<std::string>::const_iterator iter (ref->base->mSpells.mList.begin());
|
for (std::vector<std::string>::const_iterator iter (ref->mBase->mSpells.mList.begin());
|
||||||
iter!=ref->base->mSpells.mList.end(); ++iter)
|
iter!=ref->mBase->mSpells.mList.end(); ++iter)
|
||||||
data->mCreatureStats.getSpells().add (*iter);
|
data->mCreatureStats.getSpells().add (*iter);
|
||||||
|
|
||||||
// store
|
// store
|
||||||
|
@ -82,7 +82,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
return ref->base->mId;
|
return ref->mBase->mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Creature::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
|
void Creature::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
|
||||||
|
@ -104,9 +104,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
assert (ref->base != NULL);
|
assert (ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWMechanics::CreatureStats& Creature::getCreatureStats (const MWWorld::Ptr& ptr) const
|
MWMechanics::CreatureStats& Creature::getCreatureStats (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -150,7 +150,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Creature::isEssential (const MWWorld::Ptr& ptr) const
|
bool Creature::isEssential (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -158,7 +158,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
return ref->base->mFlags & ESM::Creature::Essential;
|
return ref->mBase->mFlags & ESM::Creature::Essential;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Creature::registerSelf()
|
void Creature::registerSelf()
|
||||||
|
@ -181,11 +181,11 @@ namespace MWClass
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName;
|
info.caption = ref->mBase->mName;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
@ -219,6 +219,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
ptr.get<ESM::Creature>();
|
ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.creatures.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mCreatures.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,9 +44,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -58,10 +58,10 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
|
|
||||||
if (ref->ref.mTeleport && !ref->ref.mDestCell.empty()) // TODO doors that lead to exteriors
|
if (ref->mRef.mTeleport && !ref->mRef.mDestCell.empty()) // TODO doors that lead to exteriors
|
||||||
return ref->ref.mDestCell;
|
return ref->mRef.mDestCell;
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Door::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Door::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -70,8 +70,8 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
|
|
||||||
const std::string &openSound = ref->base->mOpenSound;
|
const std::string &openSound = ref->mBase->mOpenSound;
|
||||||
//const std::string &closeSound = ref->base->closeSound;
|
//const std::string &closeSound = ref->mBase->closeSound;
|
||||||
const std::string lockedSound = "LockedDoor";
|
const std::string lockedSound = "LockedDoor";
|
||||||
const std::string trapActivationSound = "Disarm Trap Fail";
|
const std::string trapActivationSound = "Disarm Trap Fail";
|
||||||
|
|
||||||
|
@ -119,13 +119,13 @@ namespace MWClass
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ref->ref.mTeleport)
|
if (ref->mRef.mTeleport)
|
||||||
{
|
{
|
||||||
// teleport door
|
// teleport door
|
||||||
/// \todo remove this if clause once ActionTeleport can also support other actors
|
/// \todo remove this if clause once ActionTeleport can also support other actors
|
||||||
if (MWBase::Environment::get().getWorld()->getPlayer().getPlayer()==actor)
|
if (MWBase::Environment::get().getWorld()->getPlayer().getPlayer()==actor)
|
||||||
{
|
{
|
||||||
boost::shared_ptr<MWWorld::Action> action(new MWWorld::ActionTeleport (ref->ref.mDestCell, ref->ref.mDoorDest));
|
boost::shared_ptr<MWWorld::Action> action(new MWWorld::ActionTeleport (ref->mRef.mDestCell, ref->mRef.mDoorDest));
|
||||||
|
|
||||||
action->setSound(openSound);
|
action->setSound(openSound);
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Door::registerSelf()
|
void Door::registerSelf()
|
||||||
|
@ -192,7 +192,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Door::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Door::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -201,25 +201,25 @@ namespace MWClass
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName;
|
info.caption = ref->mBase->mName;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||||
|
|
||||||
if (ref->ref.mTeleport)
|
if (ref->mRef.mTeleport)
|
||||||
{
|
{
|
||||||
std::string dest;
|
std::string dest;
|
||||||
if (ref->ref.mDestCell != "")
|
if (ref->mRef.mDestCell != "")
|
||||||
{
|
{
|
||||||
// door leads to an interior, use interior name as tooltip
|
// door leads to an interior, use interior name as tooltip
|
||||||
dest = ref->ref.mDestCell;
|
dest = ref->mRef.mDestCell;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// door leads to exterior, use cell name (if any), otherwise translated region name
|
// door leads to exterior, use cell name (if any), otherwise translated region name
|
||||||
int x,y;
|
int x,y;
|
||||||
MWBase::Environment::get().getWorld()->positionToIndex (ref->ref.mDoorDest.pos[0], ref->ref.mDoorDest.pos[1], x, y);
|
MWBase::Environment::get().getWorld()->positionToIndex (ref->mRef.mDoorDest.pos[0], ref->mRef.mDoorDest.pos[1], x, y);
|
||||||
const ESM::Cell* cell = store.cells.findExt(x,y);
|
const ESM::Cell* cell = store.cells.findExt(x,y);
|
||||||
if (cell->mName != "")
|
if (cell->mName != "")
|
||||||
dest = cell->mName;
|
dest = cell->mName;
|
||||||
|
@ -233,13 +233,13 @@ namespace MWClass
|
||||||
text += "\n"+dest;
|
text += "\n"+dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ref->ref.mLockLevel > 0)
|
if (ref->mRef.mLockLevel > 0)
|
||||||
text += "\n#{sLockLevel}: " + MWGui::ToolTips::toString(ref->ref.mLockLevel);
|
text += "\n#{sLockLevel}: " + MWGui::ToolTips::toString(ref->mRef.mLockLevel);
|
||||||
if (ref->ref.mTrap != "")
|
if (ref->mRef.mTrap != "")
|
||||||
text += "\n#{sTrapped}";
|
text += "\n#{sTrapped}";
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
|
@ -252,6 +252,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||||
ptr.get<ESM::Door>();
|
ptr.get<ESM::Door>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.doors.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mDoors.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return ref->base->mId;
|
return ref->mBase->mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ingredient::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
|
void Ingredient::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
|
||||||
|
@ -50,9 +50,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Ingredient::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Ingredient::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -82,7 +82,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Ingredient::getValue (const MWWorld::Ptr& ptr) const
|
int Ingredient::getValue (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -90,7 +90,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Ingredient::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Ingredient::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -133,7 +133,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Ingredient::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Ingredient::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -142,28 +142,28 @@ namespace MWClass
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::Widgets::SpellEffectList list;
|
MWGui::Widgets::SpellEffectList list;
|
||||||
for (int i=0; i<4; ++i)
|
for (int i=0; i<4; ++i)
|
||||||
{
|
{
|
||||||
if (ref->base->mData.mEffectID[i] < 0)
|
if (ref->mBase->mData.mEffectID[i] < 0)
|
||||||
continue;
|
continue;
|
||||||
MWGui::Widgets::SpellEffectParams params;
|
MWGui::Widgets::SpellEffectParams params;
|
||||||
params.mEffectID = ref->base->mData.mEffectID[i];
|
params.mEffectID = ref->mBase->mData.mEffectID[i];
|
||||||
params.mAttribute = ref->base->mData.mAttributes[i];
|
params.mAttribute = ref->mBase->mData.mAttributes[i];
|
||||||
params.mSkill = ref->base->mData.mSkills[i];
|
params.mSkill = ref->mBase->mData.mSkills[i];
|
||||||
list.push_back(params);
|
list.push_back(params);
|
||||||
}
|
}
|
||||||
info.effects = list;
|
info.effects = list;
|
||||||
|
@ -179,6 +179,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
ptr.get<ESM::Ingredient>();
|
ptr.get<ESM::Ingredient>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.ingreds.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mIngreds.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
assert (ref->base != NULL);
|
assert (ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
|
|
||||||
MWRender::Objects& objects = renderingInterface.getObjects();
|
MWRender::Objects& objects = renderingInterface.getObjects();
|
||||||
objects.insertBegin(ptr, ptr.getRefData().isEnabled(), false);
|
objects.insertBegin(ptr, ptr.getRefData().isEnabled(), false);
|
||||||
|
@ -37,11 +37,11 @@ namespace MWClass
|
||||||
if (!model.empty())
|
if (!model.empty())
|
||||||
objects.insertMesh(ptr, "meshes\\" + model);
|
objects.insertMesh(ptr, "meshes\\" + model);
|
||||||
|
|
||||||
const int color = ref->base->mData.mColor;
|
const int color = ref->mBase->mData.mColor;
|
||||||
const float r = ((color >> 0) & 0xFF) / 255.0f;
|
const float r = ((color >> 0) & 0xFF) / 255.0f;
|
||||||
const float g = ((color >> 8) & 0xFF) / 255.0f;
|
const float g = ((color >> 8) & 0xFF) / 255.0f;
|
||||||
const float b = ((color >> 16) & 0xFF) / 255.0f;
|
const float b = ((color >> 16) & 0xFF) / 255.0f;
|
||||||
const float radius = float (ref->base->mData.mRadius);
|
const float radius = float (ref->mBase->mData.mRadius);
|
||||||
objects.insertLight (ptr, r, g, b, radius);
|
objects.insertLight (ptr, r, g, b, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,15 +49,15 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
assert (ref->base != NULL);
|
assert (ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
|
|
||||||
if(!model.empty()) {
|
if(!model.empty()) {
|
||||||
physics.insertObjectPhysics(ptr, "meshes\\" + model);
|
physics.insertObjectPhysics(ptr, "meshes\\" + model);
|
||||||
}
|
}
|
||||||
if (!ref->base->mSound.empty()) {
|
if (!ref->mBase->mSound.empty()) {
|
||||||
MWBase::Environment::get().getSoundManager()->playSound3D(ptr, ref->base->mSound, 1.0, 1.0, MWBase::SoundManager::Play_Loop);
|
MWBase::Environment::get().getSoundManager()->playSound3D(ptr, ref->mBase->mSound, 1.0, 1.0, MWBase::SoundManager::Play_Loop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,9 +65,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
assert (ref->base != NULL);
|
assert (ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -79,10 +79,10 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
if (ref->base->mModel.empty())
|
if (ref->mBase->mModel.empty())
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Light::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Light::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -91,7 +91,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
if (!(ref->base->mData.mFlags & ESM::Light::Carry))
|
if (!(ref->mBase->mData.mFlags & ESM::Light::Carry))
|
||||||
return boost::shared_ptr<MWWorld::Action> (new MWWorld::NullAction);
|
return boost::shared_ptr<MWWorld::Action> (new MWWorld::NullAction);
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> action(new MWWorld::ActionTake (ptr));
|
boost::shared_ptr<MWWorld::Action> action(new MWWorld::ActionTake (ptr));
|
||||||
|
@ -106,7 +106,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::vector<int>, bool> Light::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
std::pair<std::vector<int>, bool> Light::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -116,7 +116,7 @@ namespace MWClass
|
||||||
|
|
||||||
std::vector<int> slots;
|
std::vector<int> slots;
|
||||||
|
|
||||||
if (ref->base->mData.mFlags & ESM::Light::Carry)
|
if (ref->mBase->mData.mFlags & ESM::Light::Carry)
|
||||||
slots.push_back (int (MWWorld::InventoryStore::Slot_CarriedLeft));
|
slots.push_back (int (MWWorld::InventoryStore::Slot_CarriedLeft));
|
||||||
|
|
||||||
return std::make_pair (slots, false);
|
return std::make_pair (slots, false);
|
||||||
|
@ -127,7 +127,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Light::registerSelf()
|
void Light::registerSelf()
|
||||||
|
@ -153,7 +153,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Light::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Light::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -161,7 +161,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Light::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Light::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -170,17 +170,17 @@ namespace MWClass
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -203,6 +203,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||||
ptr.get<ESM::Light>();
|
ptr.get<ESM::Light>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.lights.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mLights.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Lockpick::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Lockpick::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -75,7 +75,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::vector<int>, bool> Lockpick::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
std::pair<std::vector<int>, bool> Lockpick::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -92,7 +92,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Lockpick::registerSelf()
|
void Lockpick::registerSelf()
|
||||||
|
@ -117,7 +117,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Lockpick::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Lockpick::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -125,7 +125,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Lockpick::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Lockpick::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -134,21 +134,21 @@ namespace MWClass
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
/// \todo store remaining uses somewhere
|
/// \todo store remaining uses somewhere
|
||||||
|
|
||||||
text += "\n#{sUses}: " + MWGui::ToolTips::toString(ref->base->mData.mUses);
|
text += "\n#{sUses}: " + MWGui::ToolTips::toString(ref->mBase->mData.mUses);
|
||||||
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->base->mData.mQuality);
|
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->mBase->mData.mQuality);
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -171,6 +171,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
MWWorld::LiveCellRef<ESM::Tool> *ref =
|
||||||
ptr.get<ESM::Tool>();
|
ptr.get<ESM::Tool>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.lockpicks.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mLockpicks.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,9 +46,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Miscellaneous::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Miscellaneous::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -78,7 +78,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Miscellaneous::getValue (const MWWorld::Ptr& ptr) const
|
int Miscellaneous::getValue (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -86,7 +86,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Miscellaneous::registerSelf()
|
void Miscellaneous::registerSelf()
|
||||||
|
@ -101,7 +101,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
if (ref->base->mName == MWBase::Environment::get().getWorld()->getStore().gameSettings.find("sGold")->getString())
|
if (ref->mBase->mName == MWBase::Environment::get().getWorld()->getStore().gameSettings.find("sGold")->getString())
|
||||||
{
|
{
|
||||||
return std::string("Item Gold Up");
|
return std::string("Item Gold Up");
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
if (ref->base->mName == MWBase::Environment::get().getWorld()->getStore().gameSettings.find("sGold")->getString())
|
if (ref->mBase->mName == MWBase::Environment::get().getWorld()->getStore().gameSettings.find("sGold")->getString())
|
||||||
{
|
{
|
||||||
return std::string("Item Gold Down");
|
return std::string("Item Gold Down");
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Miscellaneous::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Miscellaneous::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -133,7 +133,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Miscellaneous::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Miscellaneous::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -147,9 +147,9 @@ namespace MWClass
|
||||||
|
|
||||||
int count = ptr.getRefData().getCount();
|
int count = ptr.getRefData().getCount();
|
||||||
|
|
||||||
bool isGold = (ref->base->mName == store.gameSettings.find("sGold")->getString());
|
bool isGold = (ref->mBase->mName == store.gameSettings.find("sGold")->getString());
|
||||||
if (isGold && count == 1)
|
if (isGold && count == 1)
|
||||||
count = ref->base->mData.mValue;
|
count = ref->mBase->mData.mValue;
|
||||||
|
|
||||||
std::string countString;
|
std::string countString;
|
||||||
if (!isGold)
|
if (!isGold)
|
||||||
|
@ -157,12 +157,12 @@ namespace MWClass
|
||||||
else // gold displays its count also if it's 1.
|
else // gold displays its count also if it's 1.
|
||||||
countString = " (" + boost::lexical_cast<std::string>(count) + ")";
|
countString = " (" + boost::lexical_cast<std::string>(count) + ")";
|
||||||
|
|
||||||
info.caption = ref->base->mName + countString;
|
info.caption = ref->mBase->mName + countString;
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
if (ref->ref.mSoul != "")
|
if (ref->mRef.mSoul != "")
|
||||||
{
|
{
|
||||||
const ESM::Creature *creature = store.creatures.search(ref->ref.mSoul);
|
const ESM::Creature *creature = store.creatures.search(ref->mRef.mSoul);
|
||||||
info.caption += " (" + creature->mName + ")";
|
info.caption += " (" + creature->mName + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,13 +170,13 @@ namespace MWClass
|
||||||
|
|
||||||
if (!isGold)
|
if (!isGold)
|
||||||
{
|
{
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -210,11 +210,11 @@ namespace MWClass
|
||||||
MWWorld::ManualRef newRef(store, base);
|
MWWorld::ManualRef newRef(store, base);
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
newRef.getPtr().get<ESM::Miscellaneous>();
|
newRef.getPtr().get<ESM::Miscellaneous>();
|
||||||
newPtr = MWWorld::Ptr(&cell.miscItems.insert(*ref), &cell);
|
newPtr = MWWorld::Ptr(&cell.mMiscItems.insert(*ref), &cell);
|
||||||
} else {
|
} else {
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
newPtr = MWWorld::Ptr(&cell.miscItems.insert(*ref), &cell);
|
newPtr = MWWorld::Ptr(&cell.mMiscItems.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
return newPtr;
|
return newPtr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,39 +62,39 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
// NPC stats
|
// NPC stats
|
||||||
if (!ref->base->mFaction.empty())
|
if (!ref->mBase->mFaction.empty())
|
||||||
{
|
{
|
||||||
std::string faction = ref->base->mFaction;
|
std::string faction = ref->mBase->mFaction;
|
||||||
boost::algorithm::to_lower(faction);
|
boost::algorithm::to_lower(faction);
|
||||||
if(ref->base->mNpdt52.mGold != -10)
|
if(ref->mBase->mNpdt52.mGold != -10)
|
||||||
{
|
{
|
||||||
data->mNpcStats.getFactionRanks()[faction] = (int)ref->base->mNpdt52.mRank;
|
data->mNpcStats.getFactionRanks()[faction] = (int)ref->mBase->mNpdt52.mRank;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data->mNpcStats.getFactionRanks()[faction] = (int)ref->base->mNpdt12.mRank;
|
data->mNpcStats.getFactionRanks()[faction] = (int)ref->mBase->mNpdt12.mRank;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// creature stats
|
// creature stats
|
||||||
if(ref->base->mNpdt52.mGold != -10)
|
if(ref->mBase->mNpdt52.mGold != -10)
|
||||||
{
|
{
|
||||||
for (int i=0; i<27; ++i)
|
for (int i=0; i<27; ++i)
|
||||||
data->mNpcStats.getSkill (i).setBase (ref->base->mNpdt52.mSkills[i]);
|
data->mNpcStats.getSkill (i).setBase (ref->mBase->mNpdt52.mSkills[i]);
|
||||||
|
|
||||||
data->mCreatureStats.getAttribute(0).set (ref->base->mNpdt52.mStrength);
|
data->mCreatureStats.getAttribute(0).set (ref->mBase->mNpdt52.mStrength);
|
||||||
data->mCreatureStats.getAttribute(1).set (ref->base->mNpdt52.mIntelligence);
|
data->mCreatureStats.getAttribute(1).set (ref->mBase->mNpdt52.mIntelligence);
|
||||||
data->mCreatureStats.getAttribute(2).set (ref->base->mNpdt52.mWillpower);
|
data->mCreatureStats.getAttribute(2).set (ref->mBase->mNpdt52.mWillpower);
|
||||||
data->mCreatureStats.getAttribute(3).set (ref->base->mNpdt52.mAgility);
|
data->mCreatureStats.getAttribute(3).set (ref->mBase->mNpdt52.mAgility);
|
||||||
data->mCreatureStats.getAttribute(4).set (ref->base->mNpdt52.mSpeed);
|
data->mCreatureStats.getAttribute(4).set (ref->mBase->mNpdt52.mSpeed);
|
||||||
data->mCreatureStats.getAttribute(5).set (ref->base->mNpdt52.mEndurance);
|
data->mCreatureStats.getAttribute(5).set (ref->mBase->mNpdt52.mEndurance);
|
||||||
data->mCreatureStats.getAttribute(6).set (ref->base->mNpdt52.mPersonality);
|
data->mCreatureStats.getAttribute(6).set (ref->mBase->mNpdt52.mPersonality);
|
||||||
data->mCreatureStats.getAttribute(7).set (ref->base->mNpdt52.mLuck);
|
data->mCreatureStats.getAttribute(7).set (ref->mBase->mNpdt52.mLuck);
|
||||||
data->mCreatureStats.setHealth (ref->base->mNpdt52.mHealth);
|
data->mCreatureStats.setHealth (ref->mBase->mNpdt52.mHealth);
|
||||||
data->mCreatureStats.setMagicka (ref->base->mNpdt52.mMana);
|
data->mCreatureStats.setMagicka (ref->mBase->mNpdt52.mMana);
|
||||||
data->mCreatureStats.setFatigue (ref->base->mNpdt52.mFatigue);
|
data->mCreatureStats.setFatigue (ref->mBase->mNpdt52.mFatigue);
|
||||||
|
|
||||||
data->mCreatureStats.setLevel(ref->base->mNpdt52.mLevel);
|
data->mCreatureStats.setLevel(ref->mBase->mNpdt52.mLevel);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -108,14 +108,14 @@ namespace MWClass
|
||||||
data->mCreatureStats.setLevel (1);
|
data->mCreatureStats.setLevel (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
data->mCreatureStats.setHello(ref->base->mAiData.mHello);
|
data->mCreatureStats.setHello(ref->mBase->mAiData.mHello);
|
||||||
data->mCreatureStats.setFight(ref->base->mAiData.mFight);
|
data->mCreatureStats.setFight(ref->mBase->mAiData.mFight);
|
||||||
data->mCreatureStats.setFlee(ref->base->mAiData.mFlee);
|
data->mCreatureStats.setFlee(ref->mBase->mAiData.mFlee);
|
||||||
data->mCreatureStats.setAlarm(ref->base->mAiData.mAlarm);
|
data->mCreatureStats.setAlarm(ref->mBase->mAiData.mAlarm);
|
||||||
|
|
||||||
// spells
|
// spells
|
||||||
for (std::vector<std::string>::const_iterator iter (ref->base->mSpells.mList.begin());
|
for (std::vector<std::string>::const_iterator iter (ref->mBase->mSpells.mList.begin());
|
||||||
iter!=ref->base->mSpells.mList.end(); ++iter)
|
iter!=ref->mBase->mSpells.mList.end(); ++iter)
|
||||||
data->mCreatureStats.getSpells().add (*iter);
|
data->mCreatureStats.getSpells().add (*iter);
|
||||||
|
|
||||||
// store
|
// store
|
||||||
|
@ -128,7 +128,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
return ref->base->mId;
|
return ref->mBase->mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Npc::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
|
void Npc::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
|
||||||
|
@ -146,9 +146,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
std::string headID = ref->base->mHead;
|
std::string headID = ref->mBase->mHead;
|
||||||
|
|
||||||
int end = headID.find_last_of("head_") - 4;
|
int end = headID.find_last_of("head_") - 4;
|
||||||
std::string bodyRaceID = headID.substr(0, end);
|
std::string bodyRaceID = headID.substr(0, end);
|
||||||
|
@ -170,7 +170,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWMechanics::CreatureStats& Npc::getCreatureStats (const MWWorld::Ptr& ptr) const
|
MWMechanics::CreatureStats& Npc::getCreatureStats (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -217,7 +217,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Npc::setForceStance (const MWWorld::Ptr& ptr, Stance stance, bool force) const
|
void Npc::setForceStance (const MWWorld::Ptr& ptr, Stance stance, bool force) const
|
||||||
|
@ -325,7 +325,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
return ref->base->mFlags & ESM::NPC::Essential;
|
return ref->mBase->mFlags & ESM::NPC::Essential;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Npc::registerSelf()
|
void Npc::registerSelf()
|
||||||
|
@ -347,11 +347,11 @@ namespace MWClass
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName;
|
info.caption = ref->mBase->mName;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp())
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
@ -396,7 +396,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
const ESM::Class *class_ = MWBase::Environment::get().getWorld()->getStore().classes.find (
|
const ESM::Class *class_ = MWBase::Environment::get().getWorld()->getStore().classes.find (
|
||||||
ref->base->mClass);
|
ref->mBase->mClass);
|
||||||
|
|
||||||
stats.useSkill (skill, *class_, usageType);
|
stats.useSkill (skill, *class_, usageType);
|
||||||
}
|
}
|
||||||
|
@ -413,6 +413,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||||
ptr.get<ESM::NPC>();
|
ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.npcs.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mNpcs.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Potion::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Potion::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -76,7 +76,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Potion::getValue (const MWWorld::Ptr& ptr) const
|
int Potion::getValue (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -84,7 +84,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Potion::registerSelf()
|
void Potion::registerSelf()
|
||||||
|
@ -109,7 +109,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Potion::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Potion::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -117,7 +117,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Potion::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Potion::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -126,20 +126,20 @@ namespace MWClass
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
info.effects = MWGui::Widgets::MWEffectList::effectListFromESM(&ref->base->mEffects);
|
info.effects = MWGui::Widgets::MWEffectList::effectListFromESM(&ref->mBase->mEffects);
|
||||||
info.isPotion = true;
|
info.isPotion = true;
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -157,7 +157,7 @@ namespace MWClass
|
||||||
MWWorld::Ptr actor = MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
MWWorld::Ptr actor = MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> action (
|
boost::shared_ptr<MWWorld::Action> action (
|
||||||
new MWWorld::ActionApply (actor, ref->base->mId));
|
new MWWorld::ActionApply (actor, ref->mBase->mId));
|
||||||
|
|
||||||
action->setSound ("Drink");
|
action->setSound ("Drink");
|
||||||
|
|
||||||
|
@ -170,6 +170,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||||
ptr.get<ESM::Potion>();
|
ptr.get<ESM::Potion>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.potions.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mPotions.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
boost::shared_ptr<MWWorld::Action> Probe::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Probe::activate (const MWWorld::Ptr& ptr,
|
||||||
const MWWorld::Ptr& actor) const
|
const MWWorld::Ptr& actor) const
|
||||||
|
@ -74,7 +74,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::vector<int>, bool> Probe::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
std::pair<std::vector<int>, bool> Probe::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -91,7 +91,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Probe::registerSelf()
|
void Probe::registerSelf()
|
||||||
|
@ -116,7 +116,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Probe::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Probe::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -124,7 +124,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Probe::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Probe::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -133,21 +133,21 @@ namespace MWClass
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
/// \todo store remaining uses somewhere
|
/// \todo store remaining uses somewhere
|
||||||
|
|
||||||
text += "\n#{sUses}: " + MWGui::ToolTips::toString(ref->base->mData.mUses);
|
text += "\n#{sUses}: " + MWGui::ToolTips::toString(ref->mBase->mData.mUses);
|
||||||
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->base->mData.mQuality);
|
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->mBase->mData.mQuality);
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -170,6 +170,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||||
ptr.get<ESM::Probe>();
|
ptr.get<ESM::Probe>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.probes.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mProbes.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,9 +41,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Repair::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Repair::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -73,7 +73,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Repair::getValue (const MWWorld::Ptr& ptr) const
|
int Repair::getValue (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -81,7 +81,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Repair::registerSelf()
|
void Repair::registerSelf()
|
||||||
|
@ -106,7 +106,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Repair::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Repair::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -114,7 +114,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Repair::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Repair::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -123,21 +123,21 @@ namespace MWClass
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
/// \todo store remaining uses somewhere
|
/// \todo store remaining uses somewhere
|
||||||
|
|
||||||
text += "\n#{sUses}: " + MWGui::ToolTips::toString(ref->base->mData.mUses);
|
text += "\n#{sUses}: " + MWGui::ToolTips::toString(ref->mBase->mData.mUses);
|
||||||
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->base->mData.mQuality);
|
text += "\n#{sQuality}: " + MWGui::ToolTips::toString(ref->mBase->mData.mQuality);
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -151,6 +151,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||||
ptr.get<ESM::Repair>();
|
ptr.get<ESM::Repair>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.repairs.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mRepairs.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,9 +33,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Static> *ref =
|
MWWorld::LiveCellRef<ESM::Static> *ref =
|
||||||
ptr.get<ESM::Static>();
|
ptr.get<ESM::Static>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Static> *ref =
|
MWWorld::LiveCellRef<ESM::Static> *ref =
|
||||||
ptr.get<ESM::Static>();
|
ptr.get<ESM::Static>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.statics.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mStatics.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,9 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
assert(ref->base != NULL);
|
assert(ref->mBase != NULL);
|
||||||
|
|
||||||
const std::string &model = ref->base->mModel;
|
const std::string &model = ref->mBase->mModel;
|
||||||
if (!model.empty()) {
|
if (!model.empty()) {
|
||||||
return "meshes\\" + model;
|
return "meshes\\" + model;
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return ref->base->mName;
|
return ref->mBase->mName;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Weapon::activate (const MWWorld::Ptr& ptr,
|
boost::shared_ptr<MWWorld::Action> Weapon::activate (const MWWorld::Ptr& ptr,
|
||||||
|
@ -80,7 +80,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return ref->base->mData.mHealth;
|
return ref->mBase->mData.mHealth;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Weapon::getScript (const MWWorld::Ptr& ptr) const
|
std::string Weapon::getScript (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -88,7 +88,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return ref->base->mScript;
|
return ref->mBase->mScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::vector<int>, bool> Weapon::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
std::pair<std::vector<int>, bool> Weapon::getEquipmentSlots (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -99,12 +99,12 @@ namespace MWClass
|
||||||
std::vector<int> slots;
|
std::vector<int> slots;
|
||||||
bool stack = false;
|
bool stack = false;
|
||||||
|
|
||||||
if (ref->base->mData.mType==ESM::Weapon::Arrow || ref->base->mData.mType==ESM::Weapon::Bolt)
|
if (ref->mBase->mData.mType==ESM::Weapon::Arrow || ref->mBase->mData.mType==ESM::Weapon::Bolt)
|
||||||
{
|
{
|
||||||
slots.push_back (int (MWWorld::InventoryStore::Slot_Ammunition));
|
slots.push_back (int (MWWorld::InventoryStore::Slot_Ammunition));
|
||||||
stack = true;
|
stack = true;
|
||||||
}
|
}
|
||||||
else if (ref->base->mData.mType==ESM::Weapon::MarksmanThrown)
|
else if (ref->mBase->mData.mType==ESM::Weapon::MarksmanThrown)
|
||||||
{
|
{
|
||||||
slots.push_back (int (MWWorld::InventoryStore::Slot_CarriedRight));
|
slots.push_back (int (MWWorld::InventoryStore::Slot_CarriedRight));
|
||||||
stack = true;
|
stack = true;
|
||||||
|
@ -139,7 +139,7 @@ namespace MWClass
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i=0; i<size; ++i)
|
for (int i=0; i<size; ++i)
|
||||||
if (sMapping[i][0]==ref->base->mData.mType)
|
if (sMapping[i][0]==ref->mBase->mData.mType)
|
||||||
return sMapping[i][1];
|
return sMapping[i][1];
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -150,7 +150,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return ref->base->mData.mValue;
|
return ref->mBase->mData.mValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Weapon::registerSelf()
|
void Weapon::registerSelf()
|
||||||
|
@ -165,7 +165,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
int type = ref->base->mData.mType;
|
int type = ref->mBase->mData.mType;
|
||||||
// Ammo
|
// Ammo
|
||||||
if (type == 12 || type == 13)
|
if (type == 12 || type == 13)
|
||||||
{
|
{
|
||||||
|
@ -211,7 +211,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
int type = ref->base->mData.mType;
|
int type = ref->mBase->mData.mType;
|
||||||
// Ammo
|
// Ammo
|
||||||
if (type == 12 || type == 13)
|
if (type == 12 || type == 13)
|
||||||
{
|
{
|
||||||
|
@ -257,7 +257,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return ref->base->mIcon;
|
return ref->mBase->mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Weapon::hasToolTip (const MWWorld::Ptr& ptr) const
|
bool Weapon::hasToolTip (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -265,7 +265,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return (ref->base->mName != "");
|
return (ref->mBase->mName != "");
|
||||||
}
|
}
|
||||||
|
|
||||||
MWGui::ToolTipInfo Weapon::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
MWGui::ToolTipInfo Weapon::getToolTipInfo (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -274,15 +274,15 @@ namespace MWClass
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
MWGui::ToolTipInfo info;
|
MWGui::ToolTipInfo info;
|
||||||
info.caption = ref->base->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
info.caption = ref->mBase->mName + MWGui::ToolTips::getCountString(ptr.getRefData().getCount());
|
||||||
info.icon = ref->base->mIcon;
|
info.icon = ref->mBase->mIcon;
|
||||||
|
|
||||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
// weapon type & damage. arrows / bolts don't have his info.
|
// weapon type & damage. arrows / bolts don't have his info.
|
||||||
if (ref->base->mData.mType < 12)
|
if (ref->mBase->mData.mType < 12)
|
||||||
{
|
{
|
||||||
text += "\n#{sType} ";
|
text += "\n#{sType} ";
|
||||||
|
|
||||||
|
@ -300,49 +300,49 @@ namespace MWClass
|
||||||
mapping[ESM::Weapon::MarksmanCrossbow] = std::make_pair("sSkillMarksman", "");
|
mapping[ESM::Weapon::MarksmanCrossbow] = std::make_pair("sSkillMarksman", "");
|
||||||
mapping[ESM::Weapon::MarksmanThrown] = std::make_pair("sSkillMarksman", "");
|
mapping[ESM::Weapon::MarksmanThrown] = std::make_pair("sSkillMarksman", "");
|
||||||
|
|
||||||
std::string type = mapping[ref->base->mData.mType].first;
|
std::string type = mapping[ref->mBase->mData.mType].first;
|
||||||
std::string oneOrTwoHanded = mapping[ref->base->mData.mType].second;
|
std::string oneOrTwoHanded = mapping[ref->mBase->mData.mType].second;
|
||||||
|
|
||||||
text += store.gameSettings.find(type)->getString() +
|
text += store.gameSettings.find(type)->getString() +
|
||||||
((oneOrTwoHanded != "") ? ", " + store.gameSettings.find(oneOrTwoHanded)->getString() : "");
|
((oneOrTwoHanded != "") ? ", " + store.gameSettings.find(oneOrTwoHanded)->getString() : "");
|
||||||
|
|
||||||
// weapon damage
|
// weapon damage
|
||||||
if (ref->base->mData.mType >= 9)
|
if (ref->mBase->mData.mType >= 9)
|
||||||
{
|
{
|
||||||
// marksman
|
// marksman
|
||||||
text += "\n#{sAttack}: "
|
text += "\n#{sAttack}: "
|
||||||
+ MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mChop[0]))
|
+ MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mChop[0]))
|
||||||
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mChop[1]));
|
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mChop[1]));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Chop
|
// Chop
|
||||||
text += "\n#{sChop}: "
|
text += "\n#{sChop}: "
|
||||||
+ MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mChop[0]))
|
+ MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mChop[0]))
|
||||||
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mChop[1]));
|
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mChop[1]));
|
||||||
// Slash
|
// Slash
|
||||||
text += "\n#{sSlash}: "
|
text += "\n#{sSlash}: "
|
||||||
+ MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mSlash[0]))
|
+ MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mSlash[0]))
|
||||||
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mSlash[1]));
|
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mSlash[1]));
|
||||||
// Thrust
|
// Thrust
|
||||||
text += "\n#{sThrust}: "
|
text += "\n#{sThrust}: "
|
||||||
+ MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mThrust[0]))
|
+ MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mThrust[0]))
|
||||||
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->base->mData.mThrust[1]));
|
+ " - " + MWGui::ToolTips::toString(static_cast<int>(ref->mBase->mData.mThrust[1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \todo store the current weapon health somewhere
|
/// \todo store the current weapon health somewhere
|
||||||
if (ref->base->mData.mType < 11) // thrown weapons and arrows/bolts don't have health, only quantity
|
if (ref->mBase->mData.mType < 11) // thrown weapons and arrows/bolts don't have health, only quantity
|
||||||
text += "\n#{sCondition}: " + MWGui::ToolTips::toString(ref->base->mData.mHealth);
|
text += "\n#{sCondition}: " + MWGui::ToolTips::toString(ref->mBase->mData.mHealth);
|
||||||
|
|
||||||
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->base->mData.mWeight);
|
text += "\n#{sWeight}: " + MWGui::ToolTips::toString(ref->mBase->mData.mWeight);
|
||||||
text += MWGui::ToolTips::getValueString(ref->base->mData.mValue, "#{sValue}");
|
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");
|
||||||
|
|
||||||
info.enchant = ref->base->mEnchant;
|
info.enchant = ref->mBase->mEnchant;
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
if (MWBase::Environment::get().getWindowManager()->getFullHelp()) {
|
||||||
text += MWGui::ToolTips::getMiscString(ref->ref.mOwner, "Owner");
|
text += MWGui::ToolTips::getMiscString(ref->mRef.mOwner, "Owner");
|
||||||
text += MWGui::ToolTips::getMiscString(ref->base->mScript, "Script");
|
text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.text = text;
|
info.text = text;
|
||||||
|
@ -355,7 +355,7 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return ref->base->mEnchant;
|
return ref->mBase->mEnchant;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MWWorld::Action> Weapon::use (const MWWorld::Ptr& ptr) const
|
boost::shared_ptr<MWWorld::Action> Weapon::use (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -373,6 +373,6 @@ namespace MWClass
|
||||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||||
ptr.get<ESM::Weapon>();
|
ptr.get<ESM::Weapon>();
|
||||||
|
|
||||||
return MWWorld::Ptr(&cell.weapons.insert(*ref), &cell);
|
return MWWorld::Ptr(&cell.mWeapons.insert(*ref), &cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -390,7 +390,7 @@ namespace MWDialogue
|
||||||
if(select.mType==ESM::VT_Int)
|
if(select.mType==ESM::VT_Int)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
||||||
int isFaction = int(toLower(npc->base->mFaction) == toLower(name));
|
int isFaction = int(toLower(npc->mBase->mFaction) == toLower(name));
|
||||||
if(selectCompare<int,int>(comp,!isFaction,select.mI))
|
if(selectCompare<int,int>(comp,!isFaction,select.mI))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -407,7 +407,7 @@ namespace MWDialogue
|
||||||
if(select.mType==ESM::VT_Int)
|
if(select.mType==ESM::VT_Int)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
||||||
int isClass = int(toLower(npc->base->mClass) == toLower(name));
|
int isClass = int(toLower(npc->mBase->mClass) == toLower(name));
|
||||||
if(selectCompare<int,int>(comp,!isClass,select.mI))
|
if(selectCompare<int,int>(comp,!isClass,select.mI))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -424,7 +424,7 @@ namespace MWDialogue
|
||||||
if(select.mType==ESM::VT_Int)
|
if(select.mType==ESM::VT_Int)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
||||||
int isRace = int(toLower(npc->base->mRace) == toLower(name));
|
int isRace = int(toLower(npc->mBase->mRace) == toLower(name));
|
||||||
if(selectCompare<int,int>(comp,!isRace,select.mI))
|
if(selectCompare<int,int>(comp,!isRace,select.mI))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -437,7 +437,7 @@ namespace MWDialogue
|
||||||
case 'B'://not Cell
|
case 'B'://not Cell
|
||||||
if(select.mType==ESM::VT_Int)
|
if(select.mType==ESM::VT_Int)
|
||||||
{
|
{
|
||||||
int isCell = int(toLower(actor.getCell()->cell->mName) == toLower(name));
|
int isCell = int(toLower(actor.getCell()->mCell->mName) == toLower(name));
|
||||||
if(selectCompare<int,int>(comp,!isCell,select.mI))
|
if(selectCompare<int,int>(comp,!isCell,select.mI))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -495,7 +495,7 @@ namespace MWDialogue
|
||||||
if (!cellRef)
|
if (!cellRef)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (toLower (info.mRace)!=toLower (cellRef->base->mRace))
|
if (toLower (info.mRace)!=toLower (cellRef->mBase->mRace))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -510,7 +510,7 @@ namespace MWDialogue
|
||||||
if (!cellRef)
|
if (!cellRef)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (toLower (info.mClass)!=toLower (cellRef->base->mClass))
|
if (toLower (info.mClass)!=toLower (cellRef->mBase->mClass))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -556,7 +556,7 @@ namespace MWDialogue
|
||||||
if (!isCreature)
|
if (!isCreature)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* npc = actor.get<ESM::NPC>();
|
||||||
if(npc->base->mFlags & npc->base->Female)
|
if(npc->mBase->mFlags & npc->mBase->Female)
|
||||||
{
|
{
|
||||||
if(static_cast<int> (info.mData.mGender)==0) return false;
|
if(static_cast<int> (info.mData.mGender)==0) return false;
|
||||||
}
|
}
|
||||||
|
@ -568,7 +568,7 @@ namespace MWDialogue
|
||||||
|
|
||||||
// check cell
|
// check cell
|
||||||
if (!info.mCell.empty())
|
if (!info.mCell.empty())
|
||||||
if (MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->cell->mName != info.mCell)
|
if (MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->mCell->mName != info.mCell)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// TODO check DATAstruct
|
// TODO check DATAstruct
|
||||||
|
@ -769,14 +769,14 @@ namespace MWDialogue
|
||||||
if (mActor.getTypeName() == typeid(ESM::NPC).name())
|
if (mActor.getTypeName() == typeid(ESM::NPC).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* ref = mActor.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* ref = mActor.get<ESM::NPC>();
|
||||||
if (ref->base->mHasAI)
|
if (ref->mBase->mHasAI)
|
||||||
services = ref->base->mAiData.mServices;
|
services = ref->mBase->mAiData.mServices;
|
||||||
}
|
}
|
||||||
else if (mActor.getTypeName() == typeid(ESM::Creature).name())
|
else if (mActor.getTypeName() == typeid(ESM::Creature).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Creature>* ref = mActor.get<ESM::Creature>();
|
MWWorld::LiveCellRef<ESM::Creature>* ref = mActor.get<ESM::Creature>();
|
||||||
if (ref->base->mHasAI)
|
if (ref->mBase->mHasAI)
|
||||||
services = ref->base->mAiData.mServices;
|
services = ref->mBase->mAiData.mServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
int windowServices = 0;
|
int windowServices = 0;
|
||||||
|
@ -794,7 +794,7 @@ namespace MWDialogue
|
||||||
|| services & ESM::NPC::Misc)
|
|| services & ESM::NPC::Misc)
|
||||||
windowServices |= MWGui::DialogueWindow::Service_Trade;
|
windowServices |= MWGui::DialogueWindow::Service_Trade;
|
||||||
|
|
||||||
if( !mActor.get<ESM::NPC>()->base->mTransport.empty())
|
if( !mActor.get<ESM::NPC>()->mBase->mTransport.empty())
|
||||||
windowServices |= MWGui::DialogueWindow::Service_Travel;
|
windowServices |= MWGui::DialogueWindow::Service_Travel;
|
||||||
|
|
||||||
if (services & ESM::NPC::Spells)
|
if (services & ESM::NPC::Spells)
|
||||||
|
|
|
@ -60,7 +60,7 @@ void BookWindow::open (MWWorld::Ptr book)
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref = mBook.get<ESM::Book>();
|
MWWorld::LiveCellRef<ESM::Book> *ref = mBook.get<ESM::Book>();
|
||||||
|
|
||||||
BookTextParser parser;
|
BookTextParser parser;
|
||||||
std::vector<std::string> results = parser.split(ref->base->mText, mLeftPage->getSize().width, mLeftPage->getSize().height);
|
std::vector<std::string> results = parser.split(ref->mBase->mText, mLeftPage->getSize().width, mLeftPage->getSize().height);
|
||||||
|
|
||||||
int i=0;
|
int i=0;
|
||||||
for (std::vector<std::string>::iterator it=results.begin();
|
for (std::vector<std::string>::iterator it=results.begin();
|
||||||
|
|
|
@ -274,7 +274,7 @@ void ContainerBase::onContainerClicked(MyGUI::Widget* _sender)
|
||||||
if (mPtr.getTypeName() == typeid(ESM::Container).name())
|
if (mPtr.getTypeName() == typeid(ESM::Container).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Container>* ref = mPtr.get<ESM::Container>();
|
MWWorld::LiveCellRef<ESM::Container>* ref = mPtr.get<ESM::Container>();
|
||||||
if (ref->base->mFlags & ESM::Container::Organic)
|
if (ref->mBase->mFlags & ESM::Container::Organic)
|
||||||
{
|
{
|
||||||
// user notification
|
// user notification
|
||||||
MWBase::Environment::get().getWindowManager()->
|
MWBase::Environment::get().getWindowManager()->
|
||||||
|
|
|
@ -36,7 +36,7 @@ void ScrollWindow::open (MWWorld::Ptr scroll)
|
||||||
MWWorld::LiveCellRef<ESM::Book> *ref = mScroll.get<ESM::Book>();
|
MWWorld::LiveCellRef<ESM::Book> *ref = mScroll.get<ESM::Book>();
|
||||||
|
|
||||||
BookTextParser parser;
|
BookTextParser parser;
|
||||||
MyGUI::IntSize size = parser.parse(ref->base->mText, mTextView, 390);
|
MyGUI::IntSize size = parser.parse(ref->mBase->mText, mTextView, 390);
|
||||||
|
|
||||||
if (size.height > mTextView->getSize().height)
|
if (size.height > mTextView->getSize().height)
|
||||||
mTextView->setCanvasSize(MyGUI::IntSize(410, size.height));
|
mTextView->setCanvasSize(MyGUI::IntSize(410, size.height));
|
||||||
|
|
|
@ -156,15 +156,15 @@ namespace MWGui
|
||||||
if (mPtr.getTypeName() == typeid(ESM::NPC).name())
|
if (mPtr.getTypeName() == typeid(ESM::NPC).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* ref = mPtr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* ref = mPtr.get<ESM::NPC>();
|
||||||
if (ref->base->mNpdt52.mGold == -10)
|
if (ref->mBase->mNpdt52.mGold == -10)
|
||||||
merchantgold = ref->base->mNpdt12.mGold;
|
merchantgold = ref->mBase->mNpdt12.mGold;
|
||||||
else
|
else
|
||||||
merchantgold = ref->base->mNpdt52.mGold;
|
merchantgold = ref->mBase->mNpdt52.mGold;
|
||||||
}
|
}
|
||||||
else // ESM::Creature
|
else // ESM::Creature
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Creature>* ref = mPtr.get<ESM::Creature>();
|
MWWorld::LiveCellRef<ESM::Creature>* ref = mPtr.get<ESM::Creature>();
|
||||||
merchantgold = ref->base->mData.mGold;
|
merchantgold = ref->mBase->mData.mGold;
|
||||||
}
|
}
|
||||||
if (mCurrentBalance > 0 && merchantgold < mCurrentBalance)
|
if (mCurrentBalance > 0 && merchantgold < mCurrentBalance)
|
||||||
{
|
{
|
||||||
|
@ -217,15 +217,15 @@ namespace MWGui
|
||||||
if (mPtr.getTypeName() == typeid(ESM::NPC).name())
|
if (mPtr.getTypeName() == typeid(ESM::NPC).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* ref = mPtr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* ref = mPtr.get<ESM::NPC>();
|
||||||
if (ref->base->mNpdt52.mGold == -10)
|
if (ref->mBase->mNpdt52.mGold == -10)
|
||||||
merchantgold = ref->base->mNpdt12.mGold;
|
merchantgold = ref->mBase->mNpdt12.mGold;
|
||||||
else
|
else
|
||||||
merchantgold = ref->base->mNpdt52.mGold;
|
merchantgold = ref->mBase->mNpdt52.mGold;
|
||||||
}
|
}
|
||||||
else // ESM::Creature
|
else // ESM::Creature
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Creature>* ref = mPtr.get<ESM::Creature>();
|
MWWorld::LiveCellRef<ESM::Creature>* ref = mPtr.get<ESM::Creature>();
|
||||||
merchantgold = ref->base->mData.mGold;
|
merchantgold = ref->mBase->mData.mGold;
|
||||||
}
|
}
|
||||||
|
|
||||||
mMerchantGold->setCaptionWithReplacing("#{sSellerGold} " + boost::lexical_cast<std::string>(merchantgold));
|
mMerchantGold->setCaptionWithReplacing("#{sSellerGold} " + boost::lexical_cast<std::string>(merchantgold));
|
||||||
|
@ -261,14 +261,14 @@ namespace MWGui
|
||||||
if (mPtr.getTypeName() == typeid(ESM::NPC).name())
|
if (mPtr.getTypeName() == typeid(ESM::NPC).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* ref = mPtr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* ref = mPtr.get<ESM::NPC>();
|
||||||
if (ref->base->mHasAI)
|
if (ref->mBase->mHasAI)
|
||||||
services = ref->base->mAiData.mServices;
|
services = ref->mBase->mAiData.mServices;
|
||||||
}
|
}
|
||||||
else if (mPtr.getTypeName() == typeid(ESM::Creature).name())
|
else if (mPtr.getTypeName() == typeid(ESM::Creature).name())
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Creature>* ref = mPtr.get<ESM::Creature>();
|
MWWorld::LiveCellRef<ESM::Creature>* ref = mPtr.get<ESM::Creature>();
|
||||||
if (ref->base->mHasAI)
|
if (ref->mBase->mHasAI)
|
||||||
services = ref->base->mAiData.mServices;
|
services = ref->mBase->mAiData.mServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \todo what about potions, there doesn't seem to be a flag for them??
|
/// \todo what about potions, there doesn't seem to be a flag for them??
|
||||||
|
|
|
@ -129,7 +129,7 @@ namespace MWGui
|
||||||
// increase skill
|
// increase skill
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *playerRef = player.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC> *playerRef = player.get<ESM::NPC>();
|
||||||
const ESM::Class *class_ = MWBase::Environment::get().getWorld()->getStore().classes.find (
|
const ESM::Class *class_ = MWBase::Environment::get().getWorld()->getStore().classes.find (
|
||||||
playerRef->base->mClass);
|
playerRef->mBase->mClass);
|
||||||
pcStats.increaseSkill (skillId, *class_, true);
|
pcStats.increaseSkill (skillId, *class_, true);
|
||||||
|
|
||||||
// remove gold
|
// remove gold
|
||||||
|
|
|
@ -104,15 +104,15 @@ namespace MWGui
|
||||||
|
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
||||||
|
|
||||||
for(unsigned int i = 0;i<mPtr.get<ESM::NPC>()->base->mTransport.size();i++)
|
for(unsigned int i = 0;i<mPtr.get<ESM::NPC>()->mBase->mTransport.size();i++)
|
||||||
{
|
{
|
||||||
std::string cellname = mPtr.get<ESM::NPC>()->base->mTransport[i].mCellName;
|
std::string cellname = mPtr.get<ESM::NPC>()->mBase->mTransport[i].mCellName;
|
||||||
bool interior = true;
|
bool interior = true;
|
||||||
int x,y;
|
int x,y;
|
||||||
MWBase::Environment::get().getWorld()->positionToIndex(mPtr.get<ESM::NPC>()->base->mTransport[i].mPos.pos[0],
|
MWBase::Environment::get().getWorld()->positionToIndex(mPtr.get<ESM::NPC>()->mBase->mTransport[i].mPos.pos[0],
|
||||||
mPtr.get<ESM::NPC>()->base->mTransport[i].mPos.pos[1],x,y);
|
mPtr.get<ESM::NPC>()->mBase->mTransport[i].mPos.pos[1],x,y);
|
||||||
if(cellname == "") {cellname = MWBase::Environment::get().getWorld()->getExterior(x,y)->cell->mName; interior= false;}
|
if(cellname == "") {cellname = MWBase::Environment::get().getWorld()->getExterior(x,y)->mCell->mName; interior= false;}
|
||||||
addDestination(cellname,mPtr.get<ESM::NPC>()->base->mTransport[i].mPos,interior);
|
addDestination(cellname,mPtr.get<ESM::NPC>()->mBase->mTransport[i].mPos,interior);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateLabels();
|
updateLabels();
|
||||||
|
|
|
@ -604,17 +604,17 @@ void WindowManager::onFrame (float frameDuration)
|
||||||
|
|
||||||
void WindowManager::changeCell(MWWorld::Ptr::CellStore* cell)
|
void WindowManager::changeCell(MWWorld::Ptr::CellStore* cell)
|
||||||
{
|
{
|
||||||
if (!(cell->cell->mData.mFlags & ESM::Cell::Interior))
|
if (cell->mCell->isExterior())
|
||||||
{
|
{
|
||||||
std::string name;
|
std::string name;
|
||||||
if (cell->cell->mName != "")
|
if (cell->mCell->mName != "")
|
||||||
{
|
{
|
||||||
name = cell->cell->mName;
|
name = cell->mCell->mName;
|
||||||
mMap->addVisitedLocation (name, cell->cell->getGridX (), cell->cell->getGridY ());
|
mMap->addVisitedLocation (name, cell->mCell->getGridX (), cell->mCell->getGridY ());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const ESM::Region* region = MWBase::Environment::get().getWorld()->getStore().regions.search(cell->cell->mRegion);
|
const ESM::Region* region = MWBase::Environment::get().getWorld()->getStore().regions.search(cell->mCell->mRegion);
|
||||||
if (region)
|
if (region)
|
||||||
name = region->mName;
|
name = region->mName;
|
||||||
else
|
else
|
||||||
|
@ -626,15 +626,15 @@ void WindowManager::changeCell(MWWorld::Ptr::CellStore* cell)
|
||||||
|
|
||||||
mMap->setCellPrefix("Cell");
|
mMap->setCellPrefix("Cell");
|
||||||
mHud->setCellPrefix("Cell");
|
mHud->setCellPrefix("Cell");
|
||||||
mMap->setActiveCell( cell->cell->mData.mX, cell->cell->mData.mY );
|
mMap->setActiveCell( cell->mCell->getGridX(), cell->mCell->getGridY() );
|
||||||
mHud->setActiveCell( cell->cell->mData.mX, cell->cell->mData.mY );
|
mHud->setActiveCell( cell->mCell->getGridX(), cell->mCell->getGridY() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mMap->setCellName( cell->cell->mName );
|
mMap->setCellName( cell->mCell->mName );
|
||||||
mHud->setCellName( cell->cell->mName );
|
mHud->setCellName( cell->mCell->mName );
|
||||||
mMap->setCellPrefix( cell->cell->mName );
|
mMap->setCellPrefix( cell->mCell->mName );
|
||||||
mHud->setCellPrefix( cell->cell->mName );
|
mHud->setCellPrefix( cell->mCell->mName );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,11 +38,11 @@ std::set<MWMechanics::EffectKey> MWMechanics::Alchemy::listEffects() const
|
||||||
const MWWorld::LiveCellRef<ESM::Ingredient> *ingredient = iter->get<ESM::Ingredient>();
|
const MWWorld::LiveCellRef<ESM::Ingredient> *ingredient = iter->get<ESM::Ingredient>();
|
||||||
|
|
||||||
for (int i=0; i<4; ++i)
|
for (int i=0; i<4; ++i)
|
||||||
if (ingredient->base->mData.mEffectID[i]!=-1)
|
if (ingredient->mBase->mData.mEffectID[i]!=-1)
|
||||||
{
|
{
|
||||||
EffectKey key (
|
EffectKey key (
|
||||||
ingredient->base->mData.mEffectID[i], ingredient->base->mData.mSkills[i]!=-1 ?
|
ingredient->mBase->mData.mEffectID[i], ingredient->mBase->mData.mSkills[i]!=-1 ?
|
||||||
ingredient->base->mData.mSkills[i] : ingredient->base->mData.mAttributes[i]);
|
ingredient->mBase->mData.mSkills[i] : ingredient->mBase->mData.mAttributes[i]);
|
||||||
|
|
||||||
++effects[key];
|
++effects[key];
|
||||||
}
|
}
|
||||||
|
@ -77,9 +77,9 @@ void MWMechanics::Alchemy::applyTools (int flags, float& value) const
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float toolQuality = setup==1 || setup==2 ? mTools[tool].get<ESM::Apparatus>()->base->mData.mQuality : 0;
|
float toolQuality = setup==1 || setup==2 ? mTools[tool].get<ESM::Apparatus>()->mBase->mData.mQuality : 0;
|
||||||
float calcinatorQuality = setup==1 || setup==3 ?
|
float calcinatorQuality = setup==1 || setup==3 ?
|
||||||
mTools[ESM::Apparatus::Calcinator].get<ESM::Apparatus>()->base->mData.mQuality : 0;
|
mTools[ESM::Apparatus::Calcinator].get<ESM::Apparatus>()->mBase->mData.mQuality : 0;
|
||||||
|
|
||||||
float quality = 1;
|
float quality = 1;
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ void MWMechanics::Alchemy::updateEffects()
|
||||||
// general alchemy factor
|
// general alchemy factor
|
||||||
float x = getChance();
|
float x = getChance();
|
||||||
|
|
||||||
x *= mTools[ESM::Apparatus::MortarPestle].get<ESM::Apparatus>()->base->mData.mQuality;
|
x *= mTools[ESM::Apparatus::MortarPestle].get<ESM::Apparatus>()->mBase->mData.mQuality;
|
||||||
x *= MWBase::Environment::get().getWorld()->getStore().gameSettings.find ("fPotionStrengthMult")->getFloat();
|
x *= MWBase::Environment::get().getWorld()->getStore().gameSettings.find ("fPotionStrengthMult")->getFloat();
|
||||||
|
|
||||||
// value
|
// value
|
||||||
|
@ -258,7 +258,7 @@ void MWMechanics::Alchemy::addPotion (const std::string& name)
|
||||||
|
|
||||||
for (TIngredientsIterator iter (beginIngredients()); iter!=endIngredients(); ++iter)
|
for (TIngredientsIterator iter (beginIngredients()); iter!=endIngredients(); ++iter)
|
||||||
if (!iter->isEmpty())
|
if (!iter->isEmpty())
|
||||||
newRecord.mData.mWeight += iter->get<ESM::Ingredient>()->base->mData.mWeight;
|
newRecord.mData.mWeight += iter->get<ESM::Ingredient>()->mBase->mData.mWeight;
|
||||||
|
|
||||||
newRecord.mData.mWeight /= countIngredients();
|
newRecord.mData.mWeight /= countIngredients();
|
||||||
|
|
||||||
|
@ -332,13 +332,13 @@ void MWMechanics::Alchemy::setAlchemist (const MWWorld::Ptr& npc)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Apparatus>* ref = iter->get<ESM::Apparatus>();
|
MWWorld::LiveCellRef<ESM::Apparatus>* ref = iter->get<ESM::Apparatus>();
|
||||||
|
|
||||||
int type = ref->base->mData.mType;
|
int type = ref->mBase->mData.mType;
|
||||||
|
|
||||||
if (type<0 || type>=static_cast<int> (mTools.size()))
|
if (type<0 || type>=static_cast<int> (mTools.size()))
|
||||||
throw std::runtime_error ("invalid apparatus type");
|
throw std::runtime_error ("invalid apparatus type");
|
||||||
|
|
||||||
if (!mTools[type].isEmpty())
|
if (!mTools[type].isEmpty())
|
||||||
if (ref->base->mData.mQuality<=mTools[type].get<ESM::Apparatus>()->base->mData.mQuality)
|
if (ref->mBase->mData.mQuality<=mTools[type].get<ESM::Apparatus>()->mBase->mData.mQuality)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
mTools[type] = *iter;
|
mTools[type] = *iter;
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace MWMechanics
|
||||||
MWMechanics::CreatureStats& creatureStats = MWWorld::Class::get (ptr).getCreatureStats (ptr);
|
MWMechanics::CreatureStats& creatureStats = MWWorld::Class::get (ptr).getCreatureStats (ptr);
|
||||||
MWMechanics::NpcStats& npcStats = MWWorld::Class::get (ptr).getNpcStats (ptr);
|
MWMechanics::NpcStats& npcStats = MWWorld::Class::get (ptr).getNpcStats (ptr);
|
||||||
|
|
||||||
const ESM::NPC *player = ptr.get<ESM::NPC>()->base;
|
const ESM::NPC *player = ptr.get<ESM::NPC>()->mBase;
|
||||||
|
|
||||||
// reset
|
// reset
|
||||||
creatureStats.setLevel(player->mNpdt52.mLevel);
|
creatureStats.setLevel(player->mNpdt52.mLevel);
|
||||||
|
|
|
@ -21,10 +21,10 @@ CreatureAnimation::CreatureAnimation(const MWWorld::Ptr& ptr): Animation()
|
||||||
mInsert = ptr.getRefData().getBaseNode();
|
mInsert = ptr.getRefData().getBaseNode();
|
||||||
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
||||||
|
|
||||||
assert (ref->base != NULL);
|
assert (ref->mBase != NULL);
|
||||||
if(!ref->base->mModel.empty())
|
if(!ref->mBase->mModel.empty())
|
||||||
{
|
{
|
||||||
std::string mesh = "meshes\\" + ref->base->mModel;
|
std::string mesh = "meshes\\" + ref->mBase->mModel;
|
||||||
|
|
||||||
mEntityList = NifOgre::NIFLoader::createEntities(mInsert, &mTextKeys, mesh);
|
mEntityList = NifOgre::NIFLoader::createEntities(mInsert, &mTextKeys, mesh);
|
||||||
for(size_t i = 0;i < mEntityList.mEntities.size();i++)
|
for(size_t i = 0;i < mEntityList.mEntities.size();i++)
|
||||||
|
|
|
@ -228,22 +228,22 @@ void Debugging::togglePathgrid()
|
||||||
|
|
||||||
void Debugging::enableCellPathgrid(MWWorld::Ptr::CellStore *store)
|
void Debugging::enableCellPathgrid(MWWorld::Ptr::CellStore *store)
|
||||||
{
|
{
|
||||||
ESM::Pathgrid *pathgrid = MWBase::Environment::get().getWorld()->getStore().pathgrids.search(*store->cell);
|
ESM::Pathgrid *pathgrid = MWBase::Environment::get().getWorld()->getStore().pathgrids.search(*store->mCell);
|
||||||
if (!pathgrid) return;
|
if (!pathgrid) return;
|
||||||
|
|
||||||
Vector3 cellPathGridPos(0, 0, 0);
|
Vector3 cellPathGridPos(0, 0, 0);
|
||||||
if (store->cell->isExterior())
|
if (store->mCell->isExterior())
|
||||||
{
|
{
|
||||||
cellPathGridPos.x = store->cell->mData.mX * ESM::Land::REAL_SIZE;
|
cellPathGridPos.x = store->mCell->mData.mX * ESM::Land::REAL_SIZE;
|
||||||
cellPathGridPos.y = store->cell->mData.mY * ESM::Land::REAL_SIZE;
|
cellPathGridPos.y = store->mCell->mData.mY * ESM::Land::REAL_SIZE;
|
||||||
}
|
}
|
||||||
SceneNode *cellPathGrid = mPathGridRoot->createChildSceneNode(cellPathGridPos);
|
SceneNode *cellPathGrid = mPathGridRoot->createChildSceneNode(cellPathGridPos);
|
||||||
cellPathGrid->attachObject(createPathgridLines(pathgrid));
|
cellPathGrid->attachObject(createPathgridLines(pathgrid));
|
||||||
cellPathGrid->attachObject(createPathgridPoints(pathgrid));
|
cellPathGrid->attachObject(createPathgridPoints(pathgrid));
|
||||||
|
|
||||||
if (store->cell->isExterior())
|
if (store->mCell->isExterior())
|
||||||
{
|
{
|
||||||
mExteriorPathgridNodes[std::make_pair(store->cell->mData.mX, store->cell->mData.mY)] = cellPathGrid;
|
mExteriorPathgridNodes[std::make_pair(store->mCell->getGridX(), store->mCell->getGridY())] = cellPathGrid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -254,10 +254,10 @@ void Debugging::enableCellPathgrid(MWWorld::Ptr::CellStore *store)
|
||||||
|
|
||||||
void Debugging::disableCellPathgrid(MWWorld::Ptr::CellStore *store)
|
void Debugging::disableCellPathgrid(MWWorld::Ptr::CellStore *store)
|
||||||
{
|
{
|
||||||
if (store->cell->isExterior())
|
if (store->mCell->isExterior())
|
||||||
{
|
{
|
||||||
ExteriorPathgridNodes::iterator it =
|
ExteriorPathgridNodes::iterator it =
|
||||||
mExteriorPathgridNodes.find(std::make_pair(store->cell->mData.mX, store->cell->mData.mY));
|
mExteriorPathgridNodes.find(std::make_pair(store->mCell->getGridX(), store->mCell->getGridY()));
|
||||||
if (it != mExteriorPathgridNodes.end())
|
if (it != mExteriorPathgridNodes.end())
|
||||||
{
|
{
|
||||||
destroyCellPathgridNode(it->second);
|
destroyCellPathgridNode(it->second);
|
||||||
|
|
|
@ -108,10 +108,10 @@ void LocalMap::requestMap(MWWorld::Ptr::CellStore* cell)
|
||||||
|
|
||||||
mCameraRotNode->setOrientation(Quaternion::IDENTITY);
|
mCameraRotNode->setOrientation(Quaternion::IDENTITY);
|
||||||
|
|
||||||
std::string name = "Cell_"+coordStr(cell->cell->mData.mX, cell->cell->mData.mY);
|
int x = cell->mCell->getGridX();
|
||||||
|
int y = cell->mCell->getGridY();
|
||||||
|
|
||||||
int x = cell->cell->mData.mX;
|
std::string name = "Cell_"+coordStr(x, y);
|
||||||
int y = cell->cell->mData.mY;
|
|
||||||
|
|
||||||
mCameraPosNode->setPosition(Vector3(0,0,0));
|
mCameraPosNode->setPosition(Vector3(0,0,0));
|
||||||
|
|
||||||
|
@ -163,7 +163,7 @@ void LocalMap::requestMap(MWWorld::Ptr::CellStore* cell,
|
||||||
const int segsX = std::ceil( length.x / sSize );
|
const int segsX = std::ceil( length.x / sSize );
|
||||||
const int segsY = std::ceil( length.y / sSize );
|
const int segsY = std::ceil( length.y / sSize );
|
||||||
|
|
||||||
mInteriorName = cell->cell->mName;
|
mInteriorName = cell->mCell->mName;
|
||||||
|
|
||||||
for (int x=0; x<segsX; ++x)
|
for (int x=0; x<segsX; ++x)
|
||||||
{
|
{
|
||||||
|
@ -173,7 +173,7 @@ void LocalMap::requestMap(MWWorld::Ptr::CellStore* cell,
|
||||||
Vector2 newcenter = start + 4096;
|
Vector2 newcenter = start + 4096;
|
||||||
|
|
||||||
render(newcenter.x - center.x, newcenter.y - center.y, z.y, z.x, sSize, sSize,
|
render(newcenter.x - center.x, newcenter.y - center.y, z.y, z.x, sSize, sSize,
|
||||||
cell->cell->mName + "_" + coordStr(x,y));
|
cell->mCell->mName + "_" + coordStr(x,y));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,18 +63,18 @@ NpcAnimation::NpcAnimation(const MWWorld::Ptr& ptr, Ogre::SceneNode* node, MWWor
|
||||||
}
|
}
|
||||||
|
|
||||||
const MWWorld::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);
|
const ESM::Race *race = store.races.find(ref->mBase->mRace);
|
||||||
|
|
||||||
std::string hairID = ref->base->mHair;
|
std::string hairID = ref->mBase->mHair;
|
||||||
std::string headID = ref->base->mHead;
|
std::string headID = ref->mBase->mHead;
|
||||||
headModel = "meshes\\" + store.bodyParts.find(headID)->mModel;
|
headModel = "meshes\\" + store.bodyParts.find(headID)->mModel;
|
||||||
hairModel = "meshes\\" + store.bodyParts.find(hairID)->mModel;
|
hairModel = "meshes\\" + store.bodyParts.find(hairID)->mModel;
|
||||||
npcName = ref->base->mName;
|
npcName = ref->mBase->mName;
|
||||||
|
|
||||||
isFemale = !!(ref->base->mFlags&ESM::NPC::Female);
|
isFemale = !!(ref->mBase->mFlags&ESM::NPC::Female);
|
||||||
isBeast = !!(race->mData.mFlags&ESM::Race::Beast);
|
isBeast = !!(race->mData.mFlags&ESM::Race::Beast);
|
||||||
|
|
||||||
bodyRaceID = "b_n_"+ref->base->mRace;
|
bodyRaceID = "b_n_"+ref->mBase->mRace;
|
||||||
std::transform(bodyRaceID.begin(), bodyRaceID.end(), bodyRaceID.begin(), ::tolower);
|
std::transform(bodyRaceID.begin(), bodyRaceID.end(), bodyRaceID.begin(), ::tolower);
|
||||||
|
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ void NpcAnimation::updateParts()
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = *robe;
|
MWWorld::Ptr ptr = *robe;
|
||||||
|
|
||||||
const ESM::Clothing *clothes = (ptr.get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (ptr.get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Robe, 5, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Robe, 5, parts);
|
||||||
reserveIndividualPart(ESM::PRT_Groin, MWWorld::InventoryStore::Slot_Robe, 5);
|
reserveIndividualPart(ESM::PRT_Groin, MWWorld::InventoryStore::Slot_Robe, 5);
|
||||||
|
@ -190,7 +190,7 @@ void NpcAnimation::updateParts()
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = *skirtiter;
|
MWWorld::Ptr ptr = *skirtiter;
|
||||||
|
|
||||||
const ESM::Clothing *clothes = (ptr.get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (ptr.get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Skirt, 4, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Skirt, 4, parts);
|
||||||
reserveIndividualPart(ESM::PRT_Groin, MWWorld::InventoryStore::Slot_Skirt, 4);
|
reserveIndividualPart(ESM::PRT_Groin, MWWorld::InventoryStore::Slot_Skirt, 4);
|
||||||
|
@ -201,32 +201,32 @@ void NpcAnimation::updateParts()
|
||||||
if(helmet != mInv.end())
|
if(helmet != mInv.end())
|
||||||
{
|
{
|
||||||
removeIndividualPart(ESM::PRT_Hair);
|
removeIndividualPart(ESM::PRT_Hair);
|
||||||
const ESM::Armor *armor = (helmet->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (helmet->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Helmet, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Helmet, 3, parts);
|
||||||
}
|
}
|
||||||
if(cuirass != mInv.end())
|
if(cuirass != mInv.end())
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (cuirass->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (cuirass->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Cuirass, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Cuirass, 3, parts);
|
||||||
}
|
}
|
||||||
if(greaves != mInv.end())
|
if(greaves != mInv.end())
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (greaves->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (greaves->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Greaves, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Greaves, 3, parts);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(leftpauldron != mInv.end())
|
if(leftpauldron != mInv.end())
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (leftpauldron->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (leftpauldron->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_LeftPauldron, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_LeftPauldron, 3, parts);
|
||||||
}
|
}
|
||||||
if(rightpauldron != mInv.end())
|
if(rightpauldron != mInv.end())
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (rightpauldron->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (rightpauldron->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_RightPauldron, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_RightPauldron, 3, parts);
|
||||||
}
|
}
|
||||||
|
@ -234,13 +234,13 @@ void NpcAnimation::updateParts()
|
||||||
{
|
{
|
||||||
if(boots->getTypeName() == typeid(ESM::Clothing).name())
|
if(boots->getTypeName() == typeid(ESM::Clothing).name())
|
||||||
{
|
{
|
||||||
const ESM::Clothing *clothes = (boots->get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (boots->get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Boots, 2, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Boots, 2, parts);
|
||||||
}
|
}
|
||||||
else if(boots->getTypeName() == typeid(ESM::Armor).name())
|
else if(boots->getTypeName() == typeid(ESM::Armor).name())
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (boots->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (boots->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Boots, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Boots, 3, parts);
|
||||||
}
|
}
|
||||||
|
@ -249,13 +249,13 @@ void NpcAnimation::updateParts()
|
||||||
{
|
{
|
||||||
if(leftglove->getTypeName() == typeid(ESM::Clothing).name())
|
if(leftglove->getTypeName() == typeid(ESM::Clothing).name())
|
||||||
{
|
{
|
||||||
const ESM::Clothing *clothes = (leftglove->get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (leftglove->get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet, 2, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet, 2, parts);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (leftglove->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (leftglove->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet, 3, parts);
|
||||||
}
|
}
|
||||||
|
@ -264,13 +264,13 @@ void NpcAnimation::updateParts()
|
||||||
{
|
{
|
||||||
if(rightglove->getTypeName() == typeid(ESM::Clothing).name())
|
if(rightglove->getTypeName() == typeid(ESM::Clothing).name())
|
||||||
{
|
{
|
||||||
const ESM::Clothing *clothes = (rightglove->get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (rightglove->get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_RightGauntlet, 2, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_RightGauntlet, 2, parts);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const ESM::Armor *armor = (rightglove->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (rightglove->get<ESM::Armor>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
std::vector<ESM::PartReference> parts = armor->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_RightGauntlet, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_RightGauntlet, 3, parts);
|
||||||
}
|
}
|
||||||
|
@ -279,13 +279,13 @@ void NpcAnimation::updateParts()
|
||||||
|
|
||||||
if(shirt != mInv.end())
|
if(shirt != mInv.end())
|
||||||
{
|
{
|
||||||
const ESM::Clothing *clothes = (shirt->get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (shirt->get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Shirt, 2, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Shirt, 2, parts);
|
||||||
}
|
}
|
||||||
if(pants != mInv.end())
|
if(pants != mInv.end())
|
||||||
{
|
{
|
||||||
const ESM::Clothing *clothes = (pants->get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (pants->get<ESM::Clothing>())->mBase;
|
||||||
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
std::vector<ESM::PartReference> parts = clothes->mParts.mParts;
|
||||||
addPartGroup(MWWorld::InventoryStore::Slot_Pants, 2, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Pants, 2, parts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,18 +219,18 @@ void Objects::insertLight (const MWWorld::Ptr& ptr, float r, float g, float b, f
|
||||||
info.radius = radius;
|
info.radius = radius;
|
||||||
info.colour = Ogre::ColourValue(r, g, b);
|
info.colour = Ogre::ColourValue(r, g, b);
|
||||||
|
|
||||||
if (ref->base->mData.mFlags & ESM::Light::Negative)
|
if (ref->mBase->mData.mFlags & ESM::Light::Negative)
|
||||||
info.colour *= -1;
|
info.colour *= -1;
|
||||||
|
|
||||||
info.interior = (ptr.getCell()->cell->mData.mFlags & ESM::Cell::Interior);
|
info.interior = !ptr.getCell()->mCell->isExterior();
|
||||||
|
|
||||||
if (ref->base->mData.mFlags & ESM::Light::Flicker)
|
if (ref->mBase->mData.mFlags & ESM::Light::Flicker)
|
||||||
info.type = LT_Flicker;
|
info.type = LT_Flicker;
|
||||||
else if (ref->base->mData.mFlags & ESM::Light::FlickerSlow)
|
else if (ref->mBase->mData.mFlags & ESM::Light::FlickerSlow)
|
||||||
info.type = LT_FlickerSlow;
|
info.type = LT_FlickerSlow;
|
||||||
else if (ref->base->mData.mFlags & ESM::Light::Pulse)
|
else if (ref->mBase->mData.mFlags & ESM::Light::Pulse)
|
||||||
info.type = LT_Pulse;
|
info.type = LT_Pulse;
|
||||||
else if (ref->base->mData.mFlags & ESM::Light::PulseSlow)
|
else if (ref->mBase->mData.mFlags & ESM::Light::PulseSlow)
|
||||||
info.type = LT_PulseSlow;
|
info.type = LT_PulseSlow;
|
||||||
else
|
else
|
||||||
info.type = LT_Normal;
|
info.type = LT_Normal;
|
||||||
|
|
|
@ -206,7 +206,7 @@ void RenderingManager::removeCell (MWWorld::Ptr::CellStore *store)
|
||||||
mObjects.removeCell(store);
|
mObjects.removeCell(store);
|
||||||
mActors.removeCell(store);
|
mActors.removeCell(store);
|
||||||
mDebugging->cellRemoved(store);
|
mDebugging->cellRemoved(store);
|
||||||
if (store->cell->isExterior())
|
if (store->mCell->isExterior())
|
||||||
mTerrainManager->cellRemoved(store);
|
mTerrainManager->cellRemoved(store);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ void RenderingManager::cellAdded (MWWorld::Ptr::CellStore *store)
|
||||||
{
|
{
|
||||||
mObjects.buildStaticGeometry (*store);
|
mObjects.buildStaticGeometry (*store);
|
||||||
mDebugging->cellAdded(store);
|
mDebugging->cellAdded(store);
|
||||||
if (store->cell->isExterior())
|
if (store->mCell->isExterior())
|
||||||
mTerrainManager->cellAdded(store);
|
mTerrainManager->cellAdded(store);
|
||||||
waterAdded(store);
|
waterAdded(store);
|
||||||
}
|
}
|
||||||
|
@ -366,7 +366,7 @@ void RenderingManager::update (float duration)
|
||||||
|
|
||||||
mWater->updateUnderwater(
|
mWater->updateUnderwater(
|
||||||
world->isUnderwater(
|
world->isUnderwater(
|
||||||
*world->getPlayer().getPlayer().getCell()->cell,
|
*world->getPlayer().getPlayer().getCell()->mCell,
|
||||||
Ogre::Vector3(cam.x, -cam.z, cam.y))
|
Ogre::Vector3(cam.x, -cam.z, cam.y))
|
||||||
);
|
);
|
||||||
mWater->update(duration);
|
mWater->update(duration);
|
||||||
|
@ -374,14 +374,14 @@ void RenderingManager::update (float duration)
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderingManager::waterAdded (MWWorld::Ptr::CellStore *store){
|
void RenderingManager::waterAdded (MWWorld::Ptr::CellStore *store){
|
||||||
if(store->cell->mData.mFlags & store->cell->HasWater
|
if(store->mCell->mData.mFlags & store->mCell->HasWater
|
||||||
|| ((!(store->cell->mData.mFlags & ESM::Cell::Interior))
|
|| ((store->mCell->isExterior())
|
||||||
&& !MWBase::Environment::get().getWorld()->getStore().lands.search(store->cell->mData.mX,store->cell->mData.mY) )) // always use water, if the cell does not have land.
|
&& !MWBase::Environment::get().getWorld()->getStore().lands.search(store->mCell->getGridX(),store->mCell->getGridY()) )) // always use water, if the cell does not have land.
|
||||||
{
|
{
|
||||||
if(mWater == 0)
|
if(mWater == 0)
|
||||||
mWater = new MWRender::Water(mRendering.getCamera(), this, store->cell);
|
mWater = new MWRender::Water(mRendering.getCamera(), this, store->mCell);
|
||||||
else
|
else
|
||||||
mWater->changeCell(store->cell);
|
mWater->changeCell(store->mCell);
|
||||||
mWater->setActive(true);
|
mWater->setActive(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -467,9 +467,9 @@ bool RenderingManager::toggleRenderMode(int mode)
|
||||||
void RenderingManager::configureFog(MWWorld::Ptr::CellStore &mCell)
|
void RenderingManager::configureFog(MWWorld::Ptr::CellStore &mCell)
|
||||||
{
|
{
|
||||||
Ogre::ColourValue color;
|
Ogre::ColourValue color;
|
||||||
color.setAsABGR (mCell.cell->mAmbi.mFog);
|
color.setAsABGR (mCell.mCell->mAmbi.mFog);
|
||||||
|
|
||||||
configureFog(mCell.cell->mAmbi.mFogDensity, color);
|
configureFog(mCell.mCell->mAmbi.mFogDensity, color);
|
||||||
|
|
||||||
if (mWater)
|
if (mWater)
|
||||||
mWater->setViewportBackground (Ogre::ColourValue(0.8f, 0.9f, 1.0f));
|
mWater->setViewportBackground (Ogre::ColourValue(0.8f, 0.9f, 1.0f));
|
||||||
|
@ -519,7 +519,7 @@ void RenderingManager::setAmbientMode()
|
||||||
|
|
||||||
void RenderingManager::configureAmbient(MWWorld::Ptr::CellStore &mCell)
|
void RenderingManager::configureAmbient(MWWorld::Ptr::CellStore &mCell)
|
||||||
{
|
{
|
||||||
mAmbientColor.setAsABGR (mCell.cell->mAmbi.mAmbient);
|
mAmbientColor.setAsABGR (mCell.mCell->mAmbi.mAmbient);
|
||||||
setAmbientMode();
|
setAmbientMode();
|
||||||
|
|
||||||
// Create a "sun" that shines light downwards. It doesn't look
|
// Create a "sun" that shines light downwards. It doesn't look
|
||||||
|
@ -529,7 +529,7 @@ void RenderingManager::configureAmbient(MWWorld::Ptr::CellStore &mCell)
|
||||||
mSun = mRendering.getScene()->createLight();
|
mSun = mRendering.getScene()->createLight();
|
||||||
}
|
}
|
||||||
Ogre::ColourValue colour;
|
Ogre::ColourValue colour;
|
||||||
colour.setAsABGR (mCell.cell->mAmbi.mSunlight);
|
colour.setAsABGR (mCell.mCell->mAmbi.mSunlight);
|
||||||
mSun->setDiffuseColour (colour);
|
mSun->setDiffuseColour (colour);
|
||||||
mSun->setType(Ogre::Light::LT_DIRECTIONAL);
|
mSun->setType(Ogre::Light::LT_DIRECTIONAL);
|
||||||
mSun->setDirection(0,-1,0);
|
mSun->setDirection(0,-1,0);
|
||||||
|
@ -613,7 +613,7 @@ void RenderingManager::setGlare(bool glare)
|
||||||
|
|
||||||
void RenderingManager::requestMap(MWWorld::Ptr::CellStore* cell)
|
void RenderingManager::requestMap(MWWorld::Ptr::CellStore* cell)
|
||||||
{
|
{
|
||||||
if (!(cell->cell->mData.mFlags & ESM::Cell::Interior))
|
if (cell->mCell->isExterior())
|
||||||
mLocalMap->requestMap(cell);
|
mLocalMap->requestMap(cell);
|
||||||
else
|
else
|
||||||
mLocalMap->requestMap(cell, mObjects.getDimensions(cell));
|
mLocalMap->requestMap(cell, mObjects.getDimensions(cell));
|
||||||
|
|
|
@ -92,8 +92,8 @@ namespace MWRender
|
||||||
|
|
||||||
void TerrainManager::cellAdded(MWWorld::Ptr::CellStore *store)
|
void TerrainManager::cellAdded(MWWorld::Ptr::CellStore *store)
|
||||||
{
|
{
|
||||||
const int cellX = store->cell->getGridX();
|
const int cellX = store->mCell->getGridX();
|
||||||
const int cellY = store->cell->getGridY();
|
const int cellY = store->mCell->getGridY();
|
||||||
|
|
||||||
ESM::Land* land = MWBase::Environment::get().getWorld()->getStore().lands.search(cellX, cellY);
|
ESM::Land* land = MWBase::Environment::get().getWorld()->getStore().lands.search(cellX, cellY);
|
||||||
if (land == NULL) // no land data means we're not going to create any terrain.
|
if (land == NULL) // no land data means we're not going to create any terrain.
|
||||||
|
@ -188,8 +188,8 @@ namespace MWRender
|
||||||
{
|
{
|
||||||
for ( int y = 0; y < 2; y++ )
|
for ( int y = 0; y < 2; y++ )
|
||||||
{
|
{
|
||||||
int terrainX = store->cell->getGridX() * 2 + x;
|
int terrainX = store->mCell->getGridX() * 2 + x;
|
||||||
int terrainY = store->cell->getGridY() * 2 + y;
|
int terrainY = store->mCell->getGridY() * 2 + y;
|
||||||
if (mTerrainGroup.getTerrain(terrainX, terrainY) != NULL)
|
if (mTerrainGroup.getTerrain(terrainX, terrainY) != NULL)
|
||||||
mTerrainGroup.unloadTerrain(terrainX, terrainY);
|
mTerrainGroup.unloadTerrain(terrainX, terrainY);
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,8 +87,7 @@ namespace MWScript
|
||||||
virtual void execute (Interpreter::Runtime& runtime)
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
{
|
{
|
||||||
bool interior =
|
bool interior =
|
||||||
MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->cell->mData.mFlags &
|
!MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->mCell->isExterior();
|
||||||
ESM::Cell::Interior;
|
|
||||||
|
|
||||||
runtime.push (interior ? 1 : 0);
|
runtime.push (interior ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
@ -103,7 +102,7 @@ namespace MWScript
|
||||||
std::string name = runtime.getStringLiteral (runtime[0].mInteger);
|
std::string name = runtime.getStringLiteral (runtime[0].mInteger);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
|
|
||||||
const ESM::Cell *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->cell;
|
const ESM::Cell *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->mCell;
|
||||||
|
|
||||||
std::string current = cell->mName;
|
std::string current = cell->mName;
|
||||||
|
|
||||||
|
@ -143,7 +142,7 @@ namespace MWScript
|
||||||
|
|
||||||
MWWorld::Ptr::CellStore *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell();
|
MWWorld::Ptr::CellStore *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell();
|
||||||
|
|
||||||
if (!(cell->cell->mData.mFlags & ESM::Cell::Interior))
|
if (cell->mCell->isExterior())
|
||||||
throw std::runtime_error("Can't set water level in exterior cell");
|
throw std::runtime_error("Can't set water level in exterior cell");
|
||||||
|
|
||||||
cell->mWaterLevel = level;
|
cell->mWaterLevel = level;
|
||||||
|
@ -161,7 +160,7 @@ namespace MWScript
|
||||||
|
|
||||||
MWWorld::Ptr::CellStore *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell();
|
MWWorld::Ptr::CellStore *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell();
|
||||||
|
|
||||||
if (!(cell->cell->mData.mFlags & ESM::Cell::Interior))
|
if (cell->mCell->isExterior())
|
||||||
throw std::runtime_error("Can't set water level in exterior cell");
|
throw std::runtime_error("Can't set water level in exterior cell");
|
||||||
|
|
||||||
cell->mWaterLevel +=level;
|
cell->mWaterLevel +=level;
|
||||||
|
|
|
@ -328,7 +328,7 @@ namespace MWScript
|
||||||
assert (ref);
|
assert (ref);
|
||||||
|
|
||||||
const ESM::Class& class_ =
|
const ESM::Class& class_ =
|
||||||
*MWBase::Environment::get().getWorld()->getStore().classes.find (ref->base->mClass);
|
*MWBase::Environment::get().getWorld()->getStore().classes.find (ref->mBase->mClass);
|
||||||
|
|
||||||
float level = 0;
|
float level = 0;
|
||||||
float progress = std::modf (stats.getSkill (mIndex).getBase(), &level);
|
float progress = std::modf (stats.getSkill (mIndex).getBase(), &level);
|
||||||
|
|
|
@ -414,13 +414,13 @@ namespace MWSound
|
||||||
|
|
||||||
//If the region has changed
|
//If the region has changed
|
||||||
timePassed += duration;
|
timePassed += duration;
|
||||||
if((current->cell->mData.mFlags & current->cell->Interior) || timePassed < 10)
|
if(!current->mCell->isExterior() || timePassed < 10)
|
||||||
return;
|
return;
|
||||||
timePassed = 0;
|
timePassed = 0;
|
||||||
|
|
||||||
if(regionName != current->cell->mRegion)
|
if(regionName != current->mCell->mRegion)
|
||||||
{
|
{
|
||||||
regionName = current->cell->mRegion;
|
regionName = current->mCell->mRegion;
|
||||||
total = 0;
|
total = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -477,7 +477,7 @@ namespace MWSound
|
||||||
|
|
||||||
MWWorld::Ptr player =
|
MWWorld::Ptr player =
|
||||||
MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
||||||
const ESM::Cell *cell = player.getCell()->cell;
|
const ESM::Cell *cell = player.getCell()->mCell;
|
||||||
|
|
||||||
Environment env = Env_Normal;
|
Environment env = Env_Normal;
|
||||||
if((cell->mData.mFlags&cell->HasWater) && mListenerPos.z < cell->mWater)
|
if((cell->mData.mFlags&cell->HasWater) && mListenerPos.z < cell->mWater)
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
LiveCellRef<ESM::Book> *ref = getTarget().get<ESM::Book>();
|
LiveCellRef<ESM::Book> *ref = getTarget().get<ESM::Book>();
|
||||||
|
|
||||||
if (ref->base->mData.mIsScroll)
|
if (ref->mBase->mData.mIsScroll)
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWindowManager()->pushGuiMode(MWGui::GM_Scroll);
|
MWBase::Environment::get().getWindowManager()->pushGuiMode(MWGui::GM_Scroll);
|
||||||
MWBase::Environment::get().getWindowManager()->getScrollWindow()->open(getTarget());
|
MWBase::Environment::get().getWindowManager()->getScrollWindow()->open(getTarget());
|
||||||
|
@ -38,16 +38,16 @@ namespace MWWorld
|
||||||
MWMechanics::NpcStats& npcStats = MWWorld::Class::get(player).getNpcStats (player);
|
MWMechanics::NpcStats& npcStats = MWWorld::Class::get(player).getNpcStats (player);
|
||||||
|
|
||||||
// Skill gain from books
|
// Skill gain from books
|
||||||
if (ref->base->mData.mSkillID >= 0 && ref->base->mData.mSkillID < ESM::Skill::Length
|
if (ref->mBase->mData.mSkillID >= 0 && ref->mBase->mData.mSkillID < ESM::Skill::Length
|
||||||
&& !npcStats.hasBeenUsed (ref->base->mId))
|
&& !npcStats.hasBeenUsed (ref->mBase->mId))
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *playerRef = player.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC> *playerRef = player.get<ESM::NPC>();
|
||||||
const ESM::Class *class_ = MWBase::Environment::get().getWorld()->getStore().classes.find (
|
const ESM::Class *class_ = MWBase::Environment::get().getWorld()->getStore().classes.find (
|
||||||
playerRef->base->mClass);
|
playerRef->mBase->mClass);
|
||||||
|
|
||||||
npcStats.increaseSkill (ref->base->mData.mSkillID, *class_, true);
|
npcStats.increaseSkill (ref->mBase->mData.mSkillID, *class_, true);
|
||||||
|
|
||||||
npcStats.flagAsUsed (ref->base->mId);
|
npcStats.flagAsUsed (ref->mBase->mId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,12 +23,12 @@ MWWorld::Ptr::CellStore *MWWorld::Cells::getCellStore (const ESM::Cell *cell)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::map<std::pair<int, int>, Ptr::CellStore>::iterator result =
|
std::map<std::pair<int, int>, Ptr::CellStore>::iterator result =
|
||||||
mExteriors.find (std::make_pair (cell->mData.mX, cell->mData.mY));
|
mExteriors.find (std::make_pair (cell->getGridX(), cell->getGridY()));
|
||||||
|
|
||||||
if (result==mExteriors.end())
|
if (result==mExteriors.end())
|
||||||
{
|
{
|
||||||
result = mExteriors.insert (std::make_pair (
|
result = mExteriors.insert (std::make_pair (
|
||||||
std::make_pair (cell->mData.mX, cell->mData.mY), Ptr::CellStore (cell))).first;
|
std::make_pair (cell->getGridX(), cell->getGridY()), Ptr::CellStore (cell))).first;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,33 +39,33 @@ MWWorld::Ptr::CellStore *MWWorld::Cells::getCellStore (const ESM::Cell *cell)
|
||||||
void MWWorld::Cells::fillContainers (Ptr::CellStore& cellStore)
|
void MWWorld::Cells::fillContainers (Ptr::CellStore& cellStore)
|
||||||
{
|
{
|
||||||
for (CellRefList<ESM::Container>::List::iterator iter (
|
for (CellRefList<ESM::Container>::List::iterator iter (
|
||||||
cellStore.containers.list.begin());
|
cellStore.mContainers.mList.begin());
|
||||||
iter!=cellStore.containers.list.end(); ++iter)
|
iter!=cellStore.mContainers.mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
Ptr container (&*iter, &cellStore);
|
Ptr container (&*iter, &cellStore);
|
||||||
|
|
||||||
Class::get (container).getContainerStore (container).fill (
|
Class::get (container).getContainerStore (container).fill (
|
||||||
iter->base->mInventory, mStore);
|
iter->mBase->mInventory, mStore);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (CellRefList<ESM::Creature>::List::iterator iter (
|
for (CellRefList<ESM::Creature>::List::iterator iter (
|
||||||
cellStore.creatures.list.begin());
|
cellStore.mCreatures.mList.begin());
|
||||||
iter!=cellStore.creatures.list.end(); ++iter)
|
iter!=cellStore.mCreatures.mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
Ptr container (&*iter, &cellStore);
|
Ptr container (&*iter, &cellStore);
|
||||||
|
|
||||||
Class::get (container).getContainerStore (container).fill (
|
Class::get (container).getContainerStore (container).fill (
|
||||||
iter->base->mInventory, mStore);
|
iter->mBase->mInventory, mStore);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (CellRefList<ESM::NPC>::List::iterator iter (
|
for (CellRefList<ESM::NPC>::List::iterator iter (
|
||||||
cellStore.npcs.list.begin());
|
cellStore.mNpcs.mList.begin());
|
||||||
iter!=cellStore.npcs.list.end(); ++iter)
|
iter!=cellStore.mNpcs.mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
Ptr container (&*iter, &cellStore);
|
Ptr container (&*iter, &cellStore);
|
||||||
|
|
||||||
Class::get (container).getContainerStore (container).fill (
|
Class::get (container).getContainerStore (container).fill (
|
||||||
iter->base->mInventory, mStore);
|
iter->mBase->mInventory, mStore);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,64 +168,64 @@ MWWorld::Ptr MWWorld::Cells::getPtr (const std::string& name, Ptr::CellStore& ce
|
||||||
}
|
}
|
||||||
MWWorld::Ptr ptr;
|
MWWorld::Ptr ptr;
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Activator> *ref = cell.activators.find (name))
|
if (MWWorld::LiveCellRef<ESM::Activator> *ref = cell.mActivators.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Potion> *ref = cell.potions.find (name))
|
if (MWWorld::LiveCellRef<ESM::Potion> *ref = cell.mPotions.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Apparatus> *ref = cell.appas.find (name))
|
if (MWWorld::LiveCellRef<ESM::Apparatus> *ref = cell.mAppas.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Armor> *ref = cell.armors.find (name))
|
if (MWWorld::LiveCellRef<ESM::Armor> *ref = cell.mArmors.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Book> *ref = cell.books.find (name))
|
if (MWWorld::LiveCellRef<ESM::Book> *ref = cell.mBooks.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Clothing> *ref = cell.clothes.find (name))
|
if (MWWorld::LiveCellRef<ESM::Clothing> *ref = cell.mClothes.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Container> *ref = cell.containers.find (name))
|
if (MWWorld::LiveCellRef<ESM::Container> *ref = cell.mContainers.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Creature> *ref = cell.creatures.find (name))
|
if (MWWorld::LiveCellRef<ESM::Creature> *ref = cell.mCreatures.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Door> *ref = cell.doors.find (name))
|
if (MWWorld::LiveCellRef<ESM::Door> *ref = cell.mDoors.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Ingredient> *ref = cell.ingreds.find (name))
|
if (MWWorld::LiveCellRef<ESM::Ingredient> *ref = cell.mIngreds.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::CreatureLevList> *ref = cell.creatureLists.find (name))
|
if (MWWorld::LiveCellRef<ESM::CreatureLevList> *ref = cell.mCreatureLists.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::ItemLevList> *ref = cell.itemLists.find (name))
|
if (MWWorld::LiveCellRef<ESM::ItemLevList> *ref = cell.mItemLists.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Light> *ref = cell.lights.find (name))
|
if (MWWorld::LiveCellRef<ESM::Light> *ref = cell.mLights.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Tool> *ref = cell.lockpicks.find (name))
|
if (MWWorld::LiveCellRef<ESM::Tool> *ref = cell.mLockpicks.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Miscellaneous> *ref = cell.miscItems.find (name))
|
if (MWWorld::LiveCellRef<ESM::Miscellaneous> *ref = cell.mMiscItems.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::NPC> *ref = cell.npcs.find (name))
|
if (MWWorld::LiveCellRef<ESM::NPC> *ref = cell.mNpcs.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Probe> *ref = cell.probes.find (name))
|
if (MWWorld::LiveCellRef<ESM::Probe> *ref = cell.mProbes.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Repair> *ref = cell.repairs.find (name))
|
if (MWWorld::LiveCellRef<ESM::Repair> *ref = cell.mRepairs.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Static> *ref = cell.statics.find (name))
|
if (MWWorld::LiveCellRef<ESM::Static> *ref = cell.mStatics.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (MWWorld::LiveCellRef<ESM::Weapon> *ref = cell.weapons.find (name))
|
if (MWWorld::LiveCellRef<ESM::Weapon> *ref = cell.mWeapons.find (name))
|
||||||
ptr = Ptr (ref, &cell);
|
ptr = Ptr (ref, &cell);
|
||||||
|
|
||||||
if (!ptr.isEmpty() && ptr.getRefData().getCount() > 0) {
|
if (!ptr.isEmpty() && ptr.getRefData().getCount() > 0) {
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
|
|
||||||
namespace MWWorld
|
namespace MWWorld
|
||||||
{
|
{
|
||||||
CellStore::CellStore (const ESM::Cell *cell_) : cell (cell_), mState (State_Unloaded)
|
CellStore::CellStore (const ESM::Cell *cell)
|
||||||
|
: mCell (cell), mState (State_Unloaded)
|
||||||
{
|
{
|
||||||
mWaterLevel = cell->mWater;
|
mWaterLevel = cell->mWater;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +23,7 @@ namespace MWWorld
|
||||||
if (mState==State_Preloaded)
|
if (mState==State_Preloaded)
|
||||||
mIds.clear();
|
mIds.clear();
|
||||||
|
|
||||||
std::cout << "loading cell " << cell->getDescription() << std::endl;
|
std::cout << "loading cell " << mCell->getDescription() << std::endl;
|
||||||
|
|
||||||
loadRefs (store, esm);
|
loadRefs (store, esm);
|
||||||
|
|
||||||
|
@ -42,18 +43,18 @@ namespace MWWorld
|
||||||
|
|
||||||
void CellStore::listRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
void CellStore::listRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
||||||
{
|
{
|
||||||
assert (cell);
|
assert (mCell);
|
||||||
|
|
||||||
if (cell->mContext.filename.empty())
|
if (mCell->mContext.filename.empty())
|
||||||
return; // this is a dynamically generated cell -> skipping.
|
return; // this is a dynamically generated cell -> skipping.
|
||||||
|
|
||||||
// Reopen the ESM reader and seek to the right position.
|
// Reopen the ESM reader and seek to the right position.
|
||||||
cell->restore (esm);
|
mCell->restore (esm);
|
||||||
|
|
||||||
ESM::CellRef ref;
|
ESM::CellRef ref;
|
||||||
|
|
||||||
// Get each reference in turn
|
// Get each reference in turn
|
||||||
while (cell->getNextRef (esm, ref))
|
while (mCell->getNextRef (esm, ref))
|
||||||
{
|
{
|
||||||
std::string lowerCase;
|
std::string lowerCase;
|
||||||
|
|
||||||
|
@ -68,18 +69,18 @@ namespace MWWorld
|
||||||
|
|
||||||
void CellStore::loadRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
void CellStore::loadRefs(const MWWorld::ESMStore &store, ESM::ESMReader &esm)
|
||||||
{
|
{
|
||||||
assert (cell);
|
assert (mCell);
|
||||||
|
|
||||||
if (cell->mContext.filename.empty())
|
if (mCell->mContext.filename.empty())
|
||||||
return; // this is a dynamically generated cell -> skipping.
|
return; // this is a dynamically generated cell -> skipping.
|
||||||
|
|
||||||
// Reopen the ESM reader and seek to the right position.
|
// Reopen the ESM reader and seek to the right position.
|
||||||
cell->restore(esm);
|
mCell->restore(esm);
|
||||||
|
|
||||||
ESM::CellRef ref;
|
ESM::CellRef ref;
|
||||||
|
|
||||||
// Get each reference in turn
|
// Get each reference in turn
|
||||||
while(cell->getNextRef(esm, ref))
|
while(mCell->getNextRef(esm, ref))
|
||||||
{
|
{
|
||||||
std::string lowerCase;
|
std::string lowerCase;
|
||||||
|
|
||||||
|
@ -97,26 +98,26 @@ namespace MWWorld
|
||||||
*/
|
*/
|
||||||
switch(rec)
|
switch(rec)
|
||||||
{
|
{
|
||||||
case ESM::REC_ACTI: activators.find(ref, store.activators); break;
|
case ESM::REC_ACTI: mActivators.find(ref, store.activators); break;
|
||||||
case ESM::REC_ALCH: potions.find(ref, store.potions); break;
|
case ESM::REC_ALCH: mPotions.find(ref, store.potions); break;
|
||||||
case ESM::REC_APPA: appas.find(ref, store.appas); break;
|
case ESM::REC_APPA: mAppas.find(ref, store.appas); break;
|
||||||
case ESM::REC_ARMO: armors.find(ref, store.armors); break;
|
case ESM::REC_ARMO: mArmors.find(ref, store.armors); break;
|
||||||
case ESM::REC_BOOK: books.find(ref, store.books); break;
|
case ESM::REC_BOOK: mBooks.find(ref, store.books); break;
|
||||||
case ESM::REC_CLOT: clothes.find(ref, store.clothes); break;
|
case ESM::REC_CLOT: mClothes.find(ref, store.clothes); break;
|
||||||
case ESM::REC_CONT: containers.find(ref, store.containers); break;
|
case ESM::REC_CONT: mContainers.find(ref, store.containers); break;
|
||||||
case ESM::REC_CREA: creatures.find(ref, store.creatures); break;
|
case ESM::REC_CREA: mCreatures.find(ref, store.creatures); break;
|
||||||
case ESM::REC_DOOR: doors.find(ref, store.doors); break;
|
case ESM::REC_DOOR: mDoors.find(ref, store.doors); break;
|
||||||
case ESM::REC_INGR: ingreds.find(ref, store.ingreds); break;
|
case ESM::REC_INGR: mIngreds.find(ref, store.ingreds); break;
|
||||||
case ESM::REC_LEVC: creatureLists.find(ref, store.creatureLists); break;
|
case ESM::REC_LEVC: mCreatureLists.find(ref, store.creatureLists); break;
|
||||||
case ESM::REC_LEVI: itemLists.find(ref, store.itemLists); break;
|
case ESM::REC_LEVI: mItemLists.find(ref, store.itemLists); break;
|
||||||
case ESM::REC_LIGH: lights.find(ref, store.lights); break;
|
case ESM::REC_LIGH: mLights.find(ref, store.lights); break;
|
||||||
case ESM::REC_LOCK: lockpicks.find(ref, store.lockpicks); break;
|
case ESM::REC_LOCK: mLockpicks.find(ref, store.lockpicks); break;
|
||||||
case ESM::REC_MISC: miscItems.find(ref, store.miscItems); break;
|
case ESM::REC_MISC: mMiscItems.find(ref, store.miscItems); break;
|
||||||
case ESM::REC_NPC_: npcs.find(ref, store.npcs); break;
|
case ESM::REC_NPC_: mNpcs.find(ref, store.npcs); break;
|
||||||
case ESM::REC_PROB: probes.find(ref, store.probes); break;
|
case ESM::REC_PROB: mProbes.find(ref, store.probes); break;
|
||||||
case ESM::REC_REPA: repairs.find(ref, store.repairs); break;
|
case ESM::REC_REPA: mRepairs.find(ref, store.repairs); break;
|
||||||
case ESM::REC_STAT: statics.find(ref, store.statics); break;
|
case ESM::REC_STAT: mStatics.find(ref, store.statics); break;
|
||||||
case ESM::REC_WEAP: weapons.find(ref, store.weapons); break;
|
case ESM::REC_WEAP: mWeapons.find(ref, store.weapons); break;
|
||||||
|
|
||||||
case 0: std::cout << "Cell reference " + ref.mRefID + " not found!\n"; break;
|
case 0: std::cout << "Cell reference " + ref.mRefID + " not found!\n"; break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -22,19 +22,21 @@ namespace MWWorld
|
||||||
template <typename X>
|
template <typename X>
|
||||||
struct LiveCellRef
|
struct LiveCellRef
|
||||||
{
|
{
|
||||||
LiveCellRef(const ESM::CellRef& cref, const X* b = NULL) : base(b), ref(cref),
|
LiveCellRef(const ESM::CellRef& cref, const X* b = NULL)
|
||||||
mData(ref) {}
|
: mBase(b), mRef(cref), mData(mRef)
|
||||||
|
{}
|
||||||
|
|
||||||
|
LiveCellRef(const X* b = NULL)
|
||||||
LiveCellRef(const X* b = NULL) : base(b), mData(ref) {}
|
: mBase(b), mData(mRef)
|
||||||
|
{}
|
||||||
|
|
||||||
// The object that this instance is based on.
|
// The object that this instance is based on.
|
||||||
const X* base;
|
const X* mBase;
|
||||||
|
|
||||||
/* Information about this instance, such as 3D location and
|
/* Information about this instance, such as 3D location and
|
||||||
rotation and individual type-dependent data.
|
rotation and individual type-dependent data.
|
||||||
*/
|
*/
|
||||||
ESM::CellRef ref;
|
ESM::CellRef mRef;
|
||||||
|
|
||||||
/// runtime-data
|
/// runtime-data
|
||||||
RefData mData;
|
RefData mData;
|
||||||
|
@ -46,7 +48,7 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
typedef LiveCellRef<X> LiveRef;
|
typedef LiveCellRef<X> LiveRef;
|
||||||
typedef std::list<LiveRef> List;
|
typedef std::list<LiveRef> List;
|
||||||
List list;
|
List mList;
|
||||||
|
|
||||||
// Search for the given reference in the given reclist from
|
// Search for the given reference in the given reclist from
|
||||||
// ESMStore. Insert the reference into the list if a match is
|
// ESMStore. Insert the reference into the list if a match is
|
||||||
|
@ -58,14 +60,14 @@ namespace MWWorld
|
||||||
if(obj == NULL)
|
if(obj == NULL)
|
||||||
throw std::runtime_error("Error resolving cell reference " + ref.mRefID);
|
throw std::runtime_error("Error resolving cell reference " + ref.mRefID);
|
||||||
|
|
||||||
list.push_back(LiveRef(ref, obj));
|
mList.push_back(LiveRef(ref, obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
LiveRef *find (const std::string& name)
|
LiveRef *find (const std::string& name)
|
||||||
{
|
{
|
||||||
for (typename std::list<LiveRef>::iterator iter (list.begin()); iter!=list.end(); ++iter)
|
for (typename std::list<LiveRef>::iterator iter (mList.begin()); iter!=mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
if (iter->mData.getCount() > 0 && iter->ref.mRefID == name)
|
if (iter->mData.getCount() > 0 && iter->mRef.mRefID == name)
|
||||||
return &*iter;
|
return &*iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,8 +75,8 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
|
|
||||||
LiveRef &insert(const LiveRef &item) {
|
LiveRef &insert(const LiveRef &item) {
|
||||||
list.push_back(item);
|
mList.push_back(item);
|
||||||
return list.back();
|
return mList.back();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -90,33 +92,33 @@ namespace MWWorld
|
||||||
|
|
||||||
CellStore (const ESM::Cell *cell_);
|
CellStore (const ESM::Cell *cell_);
|
||||||
|
|
||||||
const ESM::Cell *cell;
|
const ESM::Cell *mCell;
|
||||||
State mState;
|
State mState;
|
||||||
std::vector<std::string> mIds;
|
std::vector<std::string> mIds;
|
||||||
|
|
||||||
float mWaterLevel;
|
float mWaterLevel;
|
||||||
|
|
||||||
// Lists for each individual object type
|
// Lists for each individual object type
|
||||||
CellRefList<ESM::Activator> activators;
|
CellRefList<ESM::Activator> mActivators;
|
||||||
CellRefList<ESM::Potion> potions;
|
CellRefList<ESM::Potion> mPotions;
|
||||||
CellRefList<ESM::Apparatus> appas;
|
CellRefList<ESM::Apparatus> mAppas;
|
||||||
CellRefList<ESM::Armor> armors;
|
CellRefList<ESM::Armor> mArmors;
|
||||||
CellRefList<ESM::Book> books;
|
CellRefList<ESM::Book> mBooks;
|
||||||
CellRefList<ESM::Clothing> clothes;
|
CellRefList<ESM::Clothing> mClothes;
|
||||||
CellRefList<ESM::Container> containers;
|
CellRefList<ESM::Container> mContainers;
|
||||||
CellRefList<ESM::Creature> creatures;
|
CellRefList<ESM::Creature> mCreatures;
|
||||||
CellRefList<ESM::Door> doors;
|
CellRefList<ESM::Door> mDoors;
|
||||||
CellRefList<ESM::Ingredient> ingreds;
|
CellRefList<ESM::Ingredient> mIngreds;
|
||||||
CellRefList<ESM::CreatureLevList> creatureLists;
|
CellRefList<ESM::CreatureLevList> mCreatureLists;
|
||||||
CellRefList<ESM::ItemLevList> itemLists;
|
CellRefList<ESM::ItemLevList> mItemLists;
|
||||||
CellRefList<ESM::Light> lights;
|
CellRefList<ESM::Light> mLights;
|
||||||
CellRefList<ESM::Tool> lockpicks;
|
CellRefList<ESM::Tool> mLockpicks;
|
||||||
CellRefList<ESM::Miscellaneous> miscItems;
|
CellRefList<ESM::Miscellaneous> mMiscItems;
|
||||||
CellRefList<ESM::NPC> npcs;
|
CellRefList<ESM::NPC> mNpcs;
|
||||||
CellRefList<ESM::Probe> probes;
|
CellRefList<ESM::Probe> mProbes;
|
||||||
CellRefList<ESM::Repair> repairs;
|
CellRefList<ESM::Repair> mRepairs;
|
||||||
CellRefList<ESM::Static> statics;
|
CellRefList<ESM::Static> mStatics;
|
||||||
CellRefList<ESM::Weapon> weapons;
|
CellRefList<ESM::Weapon> mWeapons;
|
||||||
|
|
||||||
void load (const MWWorld::ESMStore &store, ESM::ESMReader &esm);
|
void load (const MWWorld::ESMStore &store, ESM::ESMReader &esm);
|
||||||
|
|
||||||
|
@ -129,32 +131,32 @@ namespace MWWorld
|
||||||
bool forEach (Functor& functor)
|
bool forEach (Functor& functor)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
forEachImp (functor, activators) &&
|
forEachImp (functor, mActivators) &&
|
||||||
forEachImp (functor, potions) &&
|
forEachImp (functor, mPotions) &&
|
||||||
forEachImp (functor, appas) &&
|
forEachImp (functor, mAppas) &&
|
||||||
forEachImp (functor, armors) &&
|
forEachImp (functor, mArmors) &&
|
||||||
forEachImp (functor, books) &&
|
forEachImp (functor, mBooks) &&
|
||||||
forEachImp (functor, clothes) &&
|
forEachImp (functor, mClothes) &&
|
||||||
forEachImp (functor, containers) &&
|
forEachImp (functor, mContainers) &&
|
||||||
forEachImp (functor, creatures) &&
|
forEachImp (functor, mCreatures) &&
|
||||||
forEachImp (functor, doors) &&
|
forEachImp (functor, mDoors) &&
|
||||||
forEachImp (functor, ingreds) &&
|
forEachImp (functor, mIngreds) &&
|
||||||
forEachImp (functor, creatureLists) &&
|
forEachImp (functor, mCreatureLists) &&
|
||||||
forEachImp (functor, itemLists) &&
|
forEachImp (functor, mItemLists) &&
|
||||||
forEachImp (functor, lights) &&
|
forEachImp (functor, mLights) &&
|
||||||
forEachImp (functor, lockpicks) &&
|
forEachImp (functor, mLockpicks) &&
|
||||||
forEachImp (functor, miscItems) &&
|
forEachImp (functor, mMiscItems) &&
|
||||||
forEachImp (functor, npcs) &&
|
forEachImp (functor, mNpcs) &&
|
||||||
forEachImp (functor, probes) &&
|
forEachImp (functor, mProbes) &&
|
||||||
forEachImp (functor, repairs) &&
|
forEachImp (functor, mRepairs) &&
|
||||||
forEachImp (functor, statics) &&
|
forEachImp (functor, mStatics) &&
|
||||||
forEachImp (functor, weapons);
|
forEachImp (functor, mWeapons);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const CellStore &cell) {
|
bool operator==(const CellStore &cell) {
|
||||||
return this->cell->mName == cell.cell->mName &&
|
return mCell->mName == cell.mCell->mName &&
|
||||||
this->cell->mData.mX == cell.cell->mData.mX &&
|
mCell->mData.mX == cell.mCell->mData.mX &&
|
||||||
this->cell->mData.mY == cell.cell->mData.mY;
|
mCell->mData.mY == cell.mCell->mData.mY;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator!=(const CellStore &cell) {
|
bool operator!=(const CellStore &cell) {
|
||||||
|
@ -162,7 +164,7 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isExterior() const {
|
bool isExterior() const {
|
||||||
return cell->isExterior();
|
return mCell->isExterior();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -170,9 +172,9 @@ namespace MWWorld
|
||||||
template<class Functor, class List>
|
template<class Functor, class List>
|
||||||
bool forEachImp (Functor& functor, List& list)
|
bool forEachImp (Functor& functor, List& list)
|
||||||
{
|
{
|
||||||
for (typename List::List::iterator iter (list.list.begin()); iter!=list.list.end();
|
for (typename List::List::iterator iter (list.mList.begin()); iter!=list.mList.end();
|
||||||
++iter)
|
++iter)
|
||||||
if (!functor (iter->ref, iter->mData))
|
if (!functor (iter->mRef, iter->mData))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -24,12 +24,12 @@ namespace
|
||||||
float sum = 0;
|
float sum = 0;
|
||||||
|
|
||||||
for (typename MWWorld::CellRefList<T>::List::const_iterator iter (
|
for (typename MWWorld::CellRefList<T>::List::const_iterator iter (
|
||||||
cellRefList.list.begin());
|
cellRefList.mList.begin());
|
||||||
iter!=cellRefList.list.end();
|
iter!=cellRefList.mList.end();
|
||||||
++iter)
|
++iter)
|
||||||
{
|
{
|
||||||
if (iter->mData.getCount()>0)
|
if (iter->mData.getCount()>0)
|
||||||
sum += iter->mData.getCount()*iter->base->mData.mWeight;
|
sum += iter->mData.getCount()*iter->mBase->mData.mWeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sum;
|
return sum;
|
||||||
|
@ -81,19 +81,19 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::add (const Ptr& ptr)
|
||||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *gold =
|
MWWorld::LiveCellRef<ESM::Miscellaneous> *gold =
|
||||||
ptr.get<ESM::Miscellaneous>();
|
ptr.get<ESM::Miscellaneous>();
|
||||||
|
|
||||||
if (compare_string_ci(gold->ref.mRefID, "gold_001")
|
if (compare_string_ci(gold->mRef.mRefID, "gold_001")
|
||||||
|| compare_string_ci(gold->ref.mRefID, "gold_005")
|
|| compare_string_ci(gold->mRef.mRefID, "gold_005")
|
||||||
|| compare_string_ci(gold->ref.mRefID, "gold_010")
|
|| compare_string_ci(gold->mRef.mRefID, "gold_010")
|
||||||
|| compare_string_ci(gold->ref.mRefID, "gold_025")
|
|| compare_string_ci(gold->mRef.mRefID, "gold_025")
|
||||||
|| compare_string_ci(gold->ref.mRefID, "gold_100"))
|
|| compare_string_ci(gold->mRef.mRefID, "gold_100"))
|
||||||
{
|
{
|
||||||
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), "Gold_001");
|
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), "Gold_001");
|
||||||
|
|
||||||
int count = (ptr.getRefData().getCount() == 1) ? gold->base->mData.mValue : ptr.getRefData().getCount();
|
int count = (ptr.getRefData().getCount() == 1) ? gold->mBase->mData.mValue : ptr.getRefData().getCount();
|
||||||
ref.getPtr().getRefData().setCount(count);
|
ref.getPtr().getRefData().setCount(count);
|
||||||
for (MWWorld::ContainerStoreIterator iter (begin(type)); iter!=end(); ++iter)
|
for (MWWorld::ContainerStoreIterator iter (begin(type)); iter!=end(); ++iter)
|
||||||
{
|
{
|
||||||
if (compare_string_ci((*iter).get<ESM::Miscellaneous>()->ref.mRefID, "gold_001"))
|
if (compare_string_ci((*iter).get<ESM::Miscellaneous>()->mRef.mRefID, "gold_001"))
|
||||||
{
|
{
|
||||||
(*iter).getRefData().setCount( (*iter).getRefData().getCount() + count);
|
(*iter).getRefData().setCount( (*iter).getRefData().getCount() + count);
|
||||||
flagAsModified();
|
flagAsModified();
|
||||||
|
@ -127,18 +127,18 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::addImpl (const Ptr& ptr
|
||||||
|
|
||||||
switch (getType(ptr))
|
switch (getType(ptr))
|
||||||
{
|
{
|
||||||
case Type_Potion: potions.list.push_back (*ptr.get<ESM::Potion>()); it = ContainerStoreIterator(this, --potions.list.end()); break;
|
case Type_Potion: potions.mList.push_back (*ptr.get<ESM::Potion>()); it = ContainerStoreIterator(this, --potions.mList.end()); break;
|
||||||
case Type_Apparatus: appas.list.push_back (*ptr.get<ESM::Apparatus>()); it = ContainerStoreIterator(this, --appas.list.end()); break;
|
case Type_Apparatus: appas.mList.push_back (*ptr.get<ESM::Apparatus>()); it = ContainerStoreIterator(this, --appas.mList.end()); break;
|
||||||
case Type_Armor: armors.list.push_back (*ptr.get<ESM::Armor>()); it = ContainerStoreIterator(this, --armors.list.end()); break;
|
case Type_Armor: armors.mList.push_back (*ptr.get<ESM::Armor>()); it = ContainerStoreIterator(this, --armors.mList.end()); break;
|
||||||
case Type_Book: books.list.push_back (*ptr.get<ESM::Book>()); it = ContainerStoreIterator(this, --books.list.end()); break;
|
case Type_Book: books.mList.push_back (*ptr.get<ESM::Book>()); it = ContainerStoreIterator(this, --books.mList.end()); break;
|
||||||
case Type_Clothing: clothes.list.push_back (*ptr.get<ESM::Clothing>()); it = ContainerStoreIterator(this, --clothes.list.end()); break;
|
case Type_Clothing: clothes.mList.push_back (*ptr.get<ESM::Clothing>()); it = ContainerStoreIterator(this, --clothes.mList.end()); break;
|
||||||
case Type_Ingredient: ingreds.list.push_back (*ptr.get<ESM::Ingredient>()); it = ContainerStoreIterator(this, --ingreds.list.end()); break;
|
case Type_Ingredient: ingreds.mList.push_back (*ptr.get<ESM::Ingredient>()); it = ContainerStoreIterator(this, --ingreds.mList.end()); break;
|
||||||
case Type_Light: lights.list.push_back (*ptr.get<ESM::Light>()); it = ContainerStoreIterator(this, --lights.list.end()); break;
|
case Type_Light: lights.mList.push_back (*ptr.get<ESM::Light>()); it = ContainerStoreIterator(this, --lights.mList.end()); break;
|
||||||
case Type_Lockpick: lockpicks.list.push_back (*ptr.get<ESM::Tool>()); it = ContainerStoreIterator(this, --lockpicks.list.end()); break;
|
case Type_Lockpick: lockpicks.mList.push_back (*ptr.get<ESM::Tool>()); it = ContainerStoreIterator(this, --lockpicks.mList.end()); break;
|
||||||
case Type_Miscellaneous: miscItems.list.push_back (*ptr.get<ESM::Miscellaneous>()); it = ContainerStoreIterator(this, --miscItems.list.end()); break;
|
case Type_Miscellaneous: miscItems.mList.push_back (*ptr.get<ESM::Miscellaneous>()); it = ContainerStoreIterator(this, --miscItems.mList.end()); break;
|
||||||
case Type_Probe: probes.list.push_back (*ptr.get<ESM::Probe>()); it = ContainerStoreIterator(this, --probes.list.end()); break;
|
case Type_Probe: probes.mList.push_back (*ptr.get<ESM::Probe>()); it = ContainerStoreIterator(this, --probes.mList.end()); break;
|
||||||
case Type_Repair: repairs.list.push_back (*ptr.get<ESM::Repair>()); it = ContainerStoreIterator(this, --repairs.list.end()); break;
|
case Type_Repair: repairs.mList.push_back (*ptr.get<ESM::Repair>()); it = ContainerStoreIterator(this, --repairs.mList.end()); break;
|
||||||
case Type_Weapon: weapons.list.push_back (*ptr.get<ESM::Weapon>()); it = ContainerStoreIterator(this, --weapons.list.end()); break;
|
case Type_Weapon: weapons.mList.push_back (*ptr.get<ESM::Weapon>()); it = ContainerStoreIterator(this, --weapons.mList.end()); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
flagAsModified();
|
flagAsModified();
|
||||||
|
@ -326,63 +326,63 @@ bool MWWorld::ContainerStoreIterator::resetIterator()
|
||||||
{
|
{
|
||||||
case ContainerStore::Type_Potion:
|
case ContainerStore::Type_Potion:
|
||||||
|
|
||||||
mPotion = mContainer->potions.list.begin();
|
mPotion = mContainer->potions.mList.begin();
|
||||||
return mPotion!=mContainer->potions.list.end();
|
return mPotion!=mContainer->potions.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Apparatus:
|
case ContainerStore::Type_Apparatus:
|
||||||
|
|
||||||
mApparatus = mContainer->appas.list.begin();
|
mApparatus = mContainer->appas.mList.begin();
|
||||||
return mApparatus!=mContainer->appas.list.end();
|
return mApparatus!=mContainer->appas.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Armor:
|
case ContainerStore::Type_Armor:
|
||||||
|
|
||||||
mArmor = mContainer->armors.list.begin();
|
mArmor = mContainer->armors.mList.begin();
|
||||||
return mArmor!=mContainer->armors.list.end();
|
return mArmor!=mContainer->armors.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Book:
|
case ContainerStore::Type_Book:
|
||||||
|
|
||||||
mBook = mContainer->books.list.begin();
|
mBook = mContainer->books.mList.begin();
|
||||||
return mBook!=mContainer->books.list.end();
|
return mBook!=mContainer->books.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Clothing:
|
case ContainerStore::Type_Clothing:
|
||||||
|
|
||||||
mClothing = mContainer->clothes.list.begin();
|
mClothing = mContainer->clothes.mList.begin();
|
||||||
return mClothing!=mContainer->clothes.list.end();
|
return mClothing!=mContainer->clothes.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Ingredient:
|
case ContainerStore::Type_Ingredient:
|
||||||
|
|
||||||
mIngredient = mContainer->ingreds.list.begin();
|
mIngredient = mContainer->ingreds.mList.begin();
|
||||||
return mIngredient!=mContainer->ingreds.list.end();
|
return mIngredient!=mContainer->ingreds.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Light:
|
case ContainerStore::Type_Light:
|
||||||
|
|
||||||
mLight = mContainer->lights.list.begin();
|
mLight = mContainer->lights.mList.begin();
|
||||||
return mLight!=mContainer->lights.list.end();
|
return mLight!=mContainer->lights.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Lockpick:
|
case ContainerStore::Type_Lockpick:
|
||||||
|
|
||||||
mLockpick = mContainer->lockpicks.list.begin();
|
mLockpick = mContainer->lockpicks.mList.begin();
|
||||||
return mLockpick!=mContainer->lockpicks.list.end();
|
return mLockpick!=mContainer->lockpicks.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Miscellaneous:
|
case ContainerStore::Type_Miscellaneous:
|
||||||
|
|
||||||
mMiscellaneous = mContainer->miscItems.list.begin();
|
mMiscellaneous = mContainer->miscItems.mList.begin();
|
||||||
return mMiscellaneous!=mContainer->miscItems.list.end();
|
return mMiscellaneous!=mContainer->miscItems.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Probe:
|
case ContainerStore::Type_Probe:
|
||||||
|
|
||||||
mProbe = mContainer->probes.list.begin();
|
mProbe = mContainer->probes.mList.begin();
|
||||||
return mProbe!=mContainer->probes.list.end();
|
return mProbe!=mContainer->probes.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Repair:
|
case ContainerStore::Type_Repair:
|
||||||
|
|
||||||
mRepair = mContainer->repairs.list.begin();
|
mRepair = mContainer->repairs.mList.begin();
|
||||||
return mRepair!=mContainer->repairs.list.end();
|
return mRepair!=mContainer->repairs.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Weapon:
|
case ContainerStore::Type_Weapon:
|
||||||
|
|
||||||
mWeapon = mContainer->weapons.list.begin();
|
mWeapon = mContainer->weapons.mList.begin();
|
||||||
return mWeapon!=mContainer->weapons.list.end();
|
return mWeapon!=mContainer->weapons.mList.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -395,62 +395,62 @@ bool MWWorld::ContainerStoreIterator::incIterator()
|
||||||
case ContainerStore::Type_Potion:
|
case ContainerStore::Type_Potion:
|
||||||
|
|
||||||
++mPotion;
|
++mPotion;
|
||||||
return mPotion==mContainer->potions.list.end();
|
return mPotion==mContainer->potions.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Apparatus:
|
case ContainerStore::Type_Apparatus:
|
||||||
|
|
||||||
++mApparatus;
|
++mApparatus;
|
||||||
return mApparatus==mContainer->appas.list.end();
|
return mApparatus==mContainer->appas.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Armor:
|
case ContainerStore::Type_Armor:
|
||||||
|
|
||||||
++mArmor;
|
++mArmor;
|
||||||
return mArmor==mContainer->armors.list.end();
|
return mArmor==mContainer->armors.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Book:
|
case ContainerStore::Type_Book:
|
||||||
|
|
||||||
++mBook;
|
++mBook;
|
||||||
return mBook==mContainer->books.list.end();
|
return mBook==mContainer->books.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Clothing:
|
case ContainerStore::Type_Clothing:
|
||||||
|
|
||||||
++mClothing;
|
++mClothing;
|
||||||
return mClothing==mContainer->clothes.list.end();
|
return mClothing==mContainer->clothes.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Ingredient:
|
case ContainerStore::Type_Ingredient:
|
||||||
|
|
||||||
++mIngredient;
|
++mIngredient;
|
||||||
return mIngredient==mContainer->ingreds.list.end();
|
return mIngredient==mContainer->ingreds.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Light:
|
case ContainerStore::Type_Light:
|
||||||
|
|
||||||
++mLight;
|
++mLight;
|
||||||
return mLight==mContainer->lights.list.end();
|
return mLight==mContainer->lights.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Lockpick:
|
case ContainerStore::Type_Lockpick:
|
||||||
|
|
||||||
++mLockpick;
|
++mLockpick;
|
||||||
return mLockpick==mContainer->lockpicks.list.end();
|
return mLockpick==mContainer->lockpicks.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Miscellaneous:
|
case ContainerStore::Type_Miscellaneous:
|
||||||
|
|
||||||
++mMiscellaneous;
|
++mMiscellaneous;
|
||||||
return mMiscellaneous==mContainer->miscItems.list.end();
|
return mMiscellaneous==mContainer->miscItems.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Probe:
|
case ContainerStore::Type_Probe:
|
||||||
|
|
||||||
++mProbe;
|
++mProbe;
|
||||||
return mProbe==mContainer->probes.list.end();
|
return mProbe==mContainer->probes.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Repair:
|
case ContainerStore::Type_Repair:
|
||||||
|
|
||||||
++mRepair;
|
++mRepair;
|
||||||
return mRepair==mContainer->repairs.list.end();
|
return mRepair==mContainer->repairs.mList.end();
|
||||||
|
|
||||||
case ContainerStore::Type_Weapon:
|
case ContainerStore::Type_Weapon:
|
||||||
|
|
||||||
++mWeapon;
|
++mWeapon;
|
||||||
return mWeapon==mContainer->weapons.list.end();
|
return mWeapon==mContainer->weapons.mList.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -10,12 +10,12 @@ namespace
|
||||||
MWWorld::CellRefList<T>& cellRefList, MWWorld::Ptr::CellStore *cell)
|
MWWorld::CellRefList<T>& cellRefList, MWWorld::Ptr::CellStore *cell)
|
||||||
{
|
{
|
||||||
for (typename MWWorld::CellRefList<T>::List::iterator iter (
|
for (typename MWWorld::CellRefList<T>::List::iterator iter (
|
||||||
cellRefList.list.begin());
|
cellRefList.mList.begin());
|
||||||
iter!=cellRefList.list.end(); ++iter)
|
iter!=cellRefList.mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
if (!iter->base->mScript.empty() && iter->mData.getCount())
|
if (!iter->mBase->mScript.empty() && iter->mData.getCount())
|
||||||
{
|
{
|
||||||
localScripts.add (iter->base->mScript, MWWorld::Ptr (&*iter, cell));
|
localScripts.add (iter->mBase->mScript, MWWorld::Ptr (&*iter, cell));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,23 +71,23 @@ void MWWorld::LocalScripts::add (const std::string& scriptName, const Ptr& ptr)
|
||||||
|
|
||||||
void MWWorld::LocalScripts::addCell (Ptr::CellStore *cell)
|
void MWWorld::LocalScripts::addCell (Ptr::CellStore *cell)
|
||||||
{
|
{
|
||||||
listCellScripts (*this, cell->activators, cell);
|
listCellScripts (*this, cell->mActivators, cell);
|
||||||
listCellScripts (*this, cell->potions, cell);
|
listCellScripts (*this, cell->mPotions, cell);
|
||||||
listCellScripts (*this, cell->appas, cell);
|
listCellScripts (*this, cell->mAppas, cell);
|
||||||
listCellScripts (*this, cell->armors, cell);
|
listCellScripts (*this, cell->mArmors, cell);
|
||||||
listCellScripts (*this, cell->books, cell);
|
listCellScripts (*this, cell->mBooks, cell);
|
||||||
listCellScripts (*this, cell->clothes, cell);
|
listCellScripts (*this, cell->mClothes, cell);
|
||||||
listCellScripts (*this, cell->containers, cell);
|
listCellScripts (*this, cell->mContainers, cell);
|
||||||
listCellScripts (*this, cell->creatures, cell);
|
listCellScripts (*this, cell->mCreatures, cell);
|
||||||
listCellScripts (*this, cell->doors, cell);
|
listCellScripts (*this, cell->mDoors, cell);
|
||||||
listCellScripts (*this, cell->ingreds, cell);
|
listCellScripts (*this, cell->mIngreds, cell);
|
||||||
listCellScripts (*this, cell->lights, cell);
|
listCellScripts (*this, cell->mLights, cell);
|
||||||
listCellScripts (*this, cell->lockpicks, cell);
|
listCellScripts (*this, cell->mLockpicks, cell);
|
||||||
listCellScripts (*this, cell->miscItems, cell);
|
listCellScripts (*this, cell->mMiscItems, cell);
|
||||||
listCellScripts (*this, cell->npcs, cell);
|
listCellScripts (*this, cell->mNpcs, cell);
|
||||||
listCellScripts (*this, cell->probes, cell);
|
listCellScripts (*this, cell->mProbes, cell);
|
||||||
listCellScripts (*this, cell->repairs, cell);
|
listCellScripts (*this, cell->mRepairs, cell);
|
||||||
listCellScripts (*this, cell->weapons, cell);
|
listCellScripts (*this, cell->mWeapons, cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MWWorld::LocalScripts::clear()
|
void MWWorld::LocalScripts::clear()
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace MWWorld
|
||||||
if (const T *instance = list.search (name))
|
if (const T *instance = list.search (name))
|
||||||
{
|
{
|
||||||
LiveCellRef<T> ref;
|
LiveCellRef<T> ref;
|
||||||
ref.base = instance;
|
ref.mBase = instance;
|
||||||
|
|
||||||
mRef = ref;
|
mRef = ref;
|
||||||
mPtr = Ptr (&boost::any_cast<LiveCellRef<T>&> (mRef), 0);
|
mPtr = Ptr (&boost::any_cast<LiveCellRef<T>&> (mRef), 0);
|
||||||
|
@ -41,7 +41,7 @@ namespace MWWorld
|
||||||
if (const T *instance = list.search (name))
|
if (const T *instance = list.search (name))
|
||||||
{
|
{
|
||||||
LiveCellRef<T> ref;
|
LiveCellRef<T> ref;
|
||||||
ref.base = instance;
|
ref.mBase = instance;
|
||||||
|
|
||||||
mRef = ref;
|
mRef = ref;
|
||||||
mPtr = Ptr (&boost::any_cast<LiveCellRef<T>&> (mRef), 0);
|
mPtr = Ptr (&boost::any_cast<LiveCellRef<T>&> (mRef), 0);
|
||||||
|
|
|
@ -17,8 +17,8 @@ namespace MWWorld
|
||||||
mCellStore (0), mClass (0),
|
mCellStore (0), mClass (0),
|
||||||
mAutoMove (false), mForwardBackward (0)
|
mAutoMove (false), mForwardBackward (0)
|
||||||
{
|
{
|
||||||
mPlayer.base = player;
|
mPlayer.mBase = player;
|
||||||
mPlayer.ref.mRefID = "player";
|
mPlayer.mRef.mRefID = "player";
|
||||||
mName = player->mName;
|
mName = player->mName;
|
||||||
mMale = !(player->mFlags & ESM::NPC::Female);
|
mMale = !(player->mFlags & ESM::NPC::Female);
|
||||||
mRace = player->mRace;
|
mRace = player->mRace;
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace MWWorld
|
||||||
: mContainerStore (0)
|
: mContainerStore (0)
|
||||||
{
|
{
|
||||||
mPtr = liveCellRef;
|
mPtr = liveCellRef;
|
||||||
mCellRef = &liveCellRef->ref;
|
mCellRef = &liveCellRef->mRef;
|
||||||
mRefData = &liveCellRef->mData;
|
mRefData = &liveCellRef->mData;
|
||||||
mCell = cell;
|
mCell = cell;
|
||||||
mTypeName = typeid (T).name();
|
mTypeName = typeid (T).name();
|
||||||
|
|
|
@ -20,15 +20,15 @@ namespace
|
||||||
void insertCellRefList(MWRender::RenderingManager& rendering,
|
void insertCellRefList(MWRender::RenderingManager& rendering,
|
||||||
T& cellRefList, MWWorld::CellStore &cell, MWWorld::PhysicsSystem& physics)
|
T& cellRefList, MWWorld::CellStore &cell, MWWorld::PhysicsSystem& physics)
|
||||||
{
|
{
|
||||||
if (!cellRefList.list.empty())
|
if (!cellRefList.mList.empty())
|
||||||
{
|
{
|
||||||
const MWWorld::Class& class_ =
|
const MWWorld::Class& class_ =
|
||||||
MWWorld::Class::get (MWWorld::Ptr (&*cellRefList.list.begin(), &cell));
|
MWWorld::Class::get (MWWorld::Ptr (&*cellRefList.mList.begin(), &cell));
|
||||||
|
|
||||||
int numRefs = cellRefList.list.size();
|
int numRefs = cellRefList.mList.size();
|
||||||
int current = 0;
|
int current = 0;
|
||||||
for (typename T::List::iterator it = cellRefList.list.begin();
|
for (typename T::List::iterator it = cellRefList.mList.begin();
|
||||||
it != cellRefList.list.end(); it++)
|
it != cellRefList.mList.end(); it++)
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWindowManager ()->setLoadingProgress ("Loading cells", 1, current, numRefs);
|
MWBase::Environment::get().getWindowManager ()->setLoadingProgress ("Loading cells", 1, current, numRefs);
|
||||||
++current;
|
++current;
|
||||||
|
@ -80,11 +80,15 @@ namespace MWWorld
|
||||||
mPhysics->removeObject (node->getName());
|
mPhysics->removeObject (node->getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!((*iter)->cell->mData.mFlags & ESM::Cell::Interior))
|
if ((*iter)->mCell->isExterior())
|
||||||
{
|
{
|
||||||
ESM::Land* land = MWBase::Environment::get().getWorld()->getStore().lands.search((*iter)->cell->mData.mX,(*iter)->cell->mData.mY);
|
ESM::Land* land =
|
||||||
|
MWBase::Environment::get().getWorld()->getStore().lands.search(
|
||||||
|
(*iter)->mCell->getGridX(),
|
||||||
|
(*iter)->mCell->getGridY()
|
||||||
|
);
|
||||||
if (land)
|
if (land)
|
||||||
mPhysics->removeHeightField( (*iter)->cell->mData.mX, (*iter)->cell->mData.mY );
|
mPhysics->removeHeightField( (*iter)->mCell->getGridX(), (*iter)->mCell->getGridY() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,13 +115,23 @@ namespace MWWorld
|
||||||
float verts = ESM::Land::LAND_SIZE;
|
float verts = ESM::Land::LAND_SIZE;
|
||||||
float worldsize = ESM::Land::REAL_SIZE;
|
float worldsize = ESM::Land::REAL_SIZE;
|
||||||
|
|
||||||
if (!(cell->cell->mData.mFlags & ESM::Cell::Interior))
|
if (cell->mCell->isExterior())
|
||||||
{
|
{
|
||||||
ESM::Land* land = MWBase::Environment::get().getWorld()->getStore().lands.search(cell->cell->mData.mX,cell->cell->mData.mY);
|
ESM::Land* land =
|
||||||
if (land)
|
MWBase::Environment::get().getWorld()->getStore().lands.search(
|
||||||
mPhysics->addHeightField (land->mLandData->mHeights,
|
cell->mCell->getGridX(),
|
||||||
cell->cell->mData.mX, cell->cell->mData.mY,
|
cell->mCell->getGridY()
|
||||||
0, ( worldsize/(verts-1) ), verts);
|
);
|
||||||
|
if (land) {
|
||||||
|
mPhysics->addHeightField (
|
||||||
|
land->mLandData->mHeights,
|
||||||
|
cell->mCell->getGridX(),
|
||||||
|
cell->mCell->getGridY(),
|
||||||
|
0,
|
||||||
|
worldsize / (verts-1),
|
||||||
|
verts)
|
||||||
|
;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mRendering.configureAmbient(*cell);
|
mRendering.configureAmbient(*cell);
|
||||||
|
@ -128,8 +142,8 @@ namespace MWWorld
|
||||||
|
|
||||||
void Scene::playerCellChange(MWWorld::CellStore *cell, const ESM::Position& pos, bool adjustPlayerPos)
|
void Scene::playerCellChange(MWWorld::CellStore *cell, const ESM::Position& pos, bool adjustPlayerPos)
|
||||||
{
|
{
|
||||||
bool hasWater = cell->cell->mData.mFlags & cell->cell->HasWater;
|
bool hasWater = cell->mCell->mData.mFlags & ESM::Cell::HasWater;
|
||||||
mPhysics->setCurrentWater(hasWater, cell->cell->mWater);
|
mPhysics->setCurrentWater(hasWater, cell->mCell->mWater);
|
||||||
|
|
||||||
MWBase::World *world = MWBase::Environment::get().getWorld();
|
MWBase::World *world = MWBase::Environment::get().getWorld();
|
||||||
world->getPlayer().setCell(cell);
|
world->getPlayer().setCell(cell);
|
||||||
|
@ -167,10 +181,10 @@ namespace MWWorld
|
||||||
int numUnload = 0;
|
int numUnload = 0;
|
||||||
while (active!=mActiveCells.end())
|
while (active!=mActiveCells.end())
|
||||||
{
|
{
|
||||||
if (!((*active)->cell->mData.mFlags & ESM::Cell::Interior))
|
if ((*active)->mCell->isExterior())
|
||||||
{
|
{
|
||||||
if (std::abs (X-(*active)->cell->mData.mX)<=1 &&
|
if (std::abs (X-(*active)->mCell->getGridX())<=1 &&
|
||||||
std::abs (Y-(*active)->cell->mData.mY)<=1)
|
std::abs (Y-(*active)->mCell->getGridY())<=1)
|
||||||
{
|
{
|
||||||
// keep cells within the new 3x3 grid
|
// keep cells within the new 3x3 grid
|
||||||
++active;
|
++active;
|
||||||
|
@ -185,10 +199,10 @@ namespace MWWorld
|
||||||
active = mActiveCells.begin();
|
active = mActiveCells.begin();
|
||||||
while (active!=mActiveCells.end())
|
while (active!=mActiveCells.end())
|
||||||
{
|
{
|
||||||
if (!((*active)->cell->mData.mFlags & ESM::Cell::Interior))
|
if ((*active)->mCell->isExterior())
|
||||||
{
|
{
|
||||||
if (std::abs (X-(*active)->cell->mData.mX)<=1 &&
|
if (std::abs (X-(*active)->mCell->getGridX())<=1 &&
|
||||||
std::abs (Y-(*active)->cell->mData.mY)<=1)
|
std::abs (Y-(*active)->mCell->getGridY())<=1)
|
||||||
{
|
{
|
||||||
// keep cells within the new 3x3 grid
|
// keep cells within the new 3x3 grid
|
||||||
++active;
|
++active;
|
||||||
|
@ -210,10 +224,10 @@ namespace MWWorld
|
||||||
|
|
||||||
while (iter!=mActiveCells.end())
|
while (iter!=mActiveCells.end())
|
||||||
{
|
{
|
||||||
assert (!((*iter)->cell->mData.mFlags & ESM::Cell::Interior));
|
assert ((*iter)->mCell->isExterior());
|
||||||
|
|
||||||
if (x==(*iter)->cell->mData.mX &&
|
if (x==(*iter)->mCell->getGridX() &&
|
||||||
y==(*iter)->cell->mData.mY)
|
y==(*iter)->mCell->getGridY())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
++iter;
|
++iter;
|
||||||
|
@ -232,10 +246,10 @@ namespace MWWorld
|
||||||
|
|
||||||
while (iter!=mActiveCells.end())
|
while (iter!=mActiveCells.end())
|
||||||
{
|
{
|
||||||
assert (!((*iter)->cell->mData.mFlags & ESM::Cell::Interior));
|
assert ((*iter)->mCell->isExterior());
|
||||||
|
|
||||||
if (x==(*iter)->cell->mData.mX &&
|
if (x==(*iter)->mCell->getGridX() &&
|
||||||
y==(*iter)->cell->mData.mY)
|
y==(*iter)->mCell->getGridY())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
++iter;
|
++iter;
|
||||||
|
@ -256,10 +270,10 @@ namespace MWWorld
|
||||||
|
|
||||||
while (iter!=mActiveCells.end())
|
while (iter!=mActiveCells.end())
|
||||||
{
|
{
|
||||||
assert (!((*iter)->cell->mData.mFlags & ESM::Cell::Interior));
|
assert ((*iter)->mCell->isExterior());
|
||||||
|
|
||||||
if (X==(*iter)->cell->mData.mX &&
|
if (X==(*iter)->mCell->getGridX() &&
|
||||||
Y==(*iter)->cell->mData.mY)
|
Y==(*iter)->mCell->getGridY())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
++iter;
|
++iter;
|
||||||
|
@ -376,26 +390,26 @@ namespace MWWorld
|
||||||
void Scene::insertCell (Ptr::CellStore &cell)
|
void Scene::insertCell (Ptr::CellStore &cell)
|
||||||
{
|
{
|
||||||
// Loop through all references in the cell
|
// Loop through all references in the cell
|
||||||
insertCellRefList(mRendering, cell.activators, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mActivators, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.potions, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mPotions, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.appas, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mAppas, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.armors, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mArmors, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.books, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mBooks, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.clothes, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mClothes, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.containers, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mContainers, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.creatures, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mCreatures, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.doors, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mDoors, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.ingreds, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mIngreds, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.creatureLists, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mCreatureLists, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.itemLists, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mItemLists, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.lights, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mLights, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.lockpicks, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mLockpicks, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.miscItems, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mMiscItems, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.npcs, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mNpcs, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.probes, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mProbes, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.repairs, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mRepairs, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.statics, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mStatics, cell, *mPhysics);
|
||||||
insertCellRefList(mRendering, cell.weapons, cell, *mPhysics);
|
insertCellRefList(mRendering, cell.mWeapons, cell, *mPhysics);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scene::addObjectToScene (const Ptr& ptr)
|
void Scene::addObjectToScene (const Ptr& ptr)
|
||||||
|
|
|
@ -496,7 +496,7 @@ void WeatherManager::update(float duration)
|
||||||
|
|
||||||
if (exterior)
|
if (exterior)
|
||||||
{
|
{
|
||||||
std::string regionstr = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->cell->mRegion;
|
std::string regionstr = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->mCell->mRegion;
|
||||||
boost::algorithm::to_lower(regionstr);
|
boost::algorithm::to_lower(regionstr);
|
||||||
|
|
||||||
if (mWeatherUpdateTime <= 0 || regionstr != mCurrentRegion)
|
if (mWeatherUpdateTime <= 0 || regionstr != mCurrentRegion)
|
||||||
|
|
|
@ -25,10 +25,10 @@ namespace
|
||||||
MWWorld::Ptr::CellStore *cell)
|
MWWorld::Ptr::CellStore *cell)
|
||||||
{
|
{
|
||||||
for (typename MWWorld::CellRefList<T>::List::iterator iter (
|
for (typename MWWorld::CellRefList<T>::List::iterator iter (
|
||||||
cellRefList.list.begin());
|
cellRefList.mList.begin());
|
||||||
iter!=cellRefList.list.end(); ++iter)
|
iter!=cellRefList.mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
if (!iter->base->script.empty() && iter->mData.getCount())
|
if (!iter->mBase->script.empty() && iter->mData.getCount())
|
||||||
{
|
{
|
||||||
if (const ESM::Script *script = store.scripts.find (iter->base->script))
|
if (const ESM::Script *script = store.scripts.find (iter->base->script))
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,7 @@ namespace
|
||||||
{
|
{
|
||||||
typedef typename MWWorld::CellRefList<T>::List::iterator iterator;
|
typedef typename MWWorld::CellRefList<T>::List::iterator iterator;
|
||||||
|
|
||||||
for (iterator iter (refList.list.begin()); iter!=refList.list.end(); ++iter)
|
for (iterator iter (refList.mList.begin()); iter!=refList.mList.end(); ++iter)
|
||||||
{
|
{
|
||||||
if(iter->mData.getCount() > 0 && iter->mData.getBaseNode()){
|
if(iter->mData.getCount() > 0 && iter->mData.getBaseNode()){
|
||||||
if (iter->mData.getHandle()==handle)
|
if (iter->mData.getHandle()==handle)
|
||||||
|
@ -64,44 +64,44 @@ namespace MWWorld
|
||||||
Ptr World::getPtrViaHandle (const std::string& handle, Ptr::CellStore& cell)
|
Ptr World::getPtrViaHandle (const std::string& handle, Ptr::CellStore& cell)
|
||||||
{
|
{
|
||||||
if (MWWorld::LiveCellRef<ESM::Activator> *ref =
|
if (MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||||
searchViaHandle (handle, cell.activators))
|
searchViaHandle (handle, cell.mActivators))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Potion> *ref = searchViaHandle (handle, cell.potions))
|
if (MWWorld::LiveCellRef<ESM::Potion> *ref = searchViaHandle (handle, cell.mPotions))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Apparatus> *ref = searchViaHandle (handle, cell.appas))
|
if (MWWorld::LiveCellRef<ESM::Apparatus> *ref = searchViaHandle (handle, cell.mAppas))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Armor> *ref = searchViaHandle (handle, cell.armors))
|
if (MWWorld::LiveCellRef<ESM::Armor> *ref = searchViaHandle (handle, cell.mArmors))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Book> *ref = searchViaHandle (handle, cell.books))
|
if (MWWorld::LiveCellRef<ESM::Book> *ref = searchViaHandle (handle, cell.mBooks))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Clothing> *ref = searchViaHandle (handle, cell.clothes))
|
if (MWWorld::LiveCellRef<ESM::Clothing> *ref = searchViaHandle (handle, cell.mClothes))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Container> *ref =
|
if (MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
searchViaHandle (handle, cell.containers))
|
searchViaHandle (handle, cell.mContainers))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Creature> *ref =
|
if (MWWorld::LiveCellRef<ESM::Creature> *ref =
|
||||||
searchViaHandle (handle, cell.creatures))
|
searchViaHandle (handle, cell.mCreatures))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Door> *ref = searchViaHandle (handle, cell.doors))
|
if (MWWorld::LiveCellRef<ESM::Door> *ref = searchViaHandle (handle, cell.mDoors))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
if (MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||||
searchViaHandle (handle, cell.ingreds))
|
searchViaHandle (handle, cell.mIngreds))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Light> *ref = searchViaHandle (handle, cell.lights))
|
if (MWWorld::LiveCellRef<ESM::Light> *ref = searchViaHandle (handle, cell.mLights))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Tool> *ref = searchViaHandle (handle, cell.lockpicks))
|
if (MWWorld::LiveCellRef<ESM::Tool> *ref = searchViaHandle (handle, cell.mLockpicks))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Miscellaneous> *ref = searchViaHandle (handle, cell.miscItems))
|
if (MWWorld::LiveCellRef<ESM::Miscellaneous> *ref = searchViaHandle (handle, cell.mMiscItems))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::NPC> *ref = searchViaHandle (handle, cell.npcs))
|
if (MWWorld::LiveCellRef<ESM::NPC> *ref = searchViaHandle (handle, cell.mNpcs))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Probe> *ref = searchViaHandle (handle, cell.probes))
|
if (MWWorld::LiveCellRef<ESM::Probe> *ref = searchViaHandle (handle, cell.mProbes))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Repair> *ref = searchViaHandle (handle, cell.repairs))
|
if (MWWorld::LiveCellRef<ESM::Repair> *ref = searchViaHandle (handle, cell.mRepairs))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Static> *ref = searchViaHandle (handle, cell.statics))
|
if (MWWorld::LiveCellRef<ESM::Static> *ref = searchViaHandle (handle, cell.mStatics))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
if (MWWorld::LiveCellRef<ESM::Weapon> *ref = searchViaHandle (handle, cell.weapons))
|
if (MWWorld::LiveCellRef<ESM::Weapon> *ref = searchViaHandle (handle, cell.mWeapons))
|
||||||
return Ptr (ref, &cell);
|
return Ptr (ref, &cell);
|
||||||
return Ptr();
|
return Ptr();
|
||||||
}
|
}
|
||||||
|
@ -585,10 +585,10 @@ namespace MWWorld
|
||||||
if (*currCell != newCell) {
|
if (*currCell != newCell) {
|
||||||
if (isPlayer) {
|
if (isPlayer) {
|
||||||
if (!newCell.isExterior()) {
|
if (!newCell.isExterior()) {
|
||||||
changeToInteriorCell(toLower(newCell.cell->mName), pos);
|
changeToInteriorCell(toLower(newCell.mCell->mName), pos);
|
||||||
} else {
|
} else {
|
||||||
int cellX = newCell.cell->mData.mX;
|
int cellX = newCell.mCell->getGridX();
|
||||||
int cellY = newCell.cell->mData.mY;
|
int cellY = newCell.mCell->getGridY();
|
||||||
mWorldScene->changeCell(cellX, cellY, pos, false);
|
mWorldScene->changeCell(cellX, cellY, pos, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1033,10 +1033,7 @@ namespace MWWorld
|
||||||
Ptr::CellStore *currentCell = mWorldScene->getCurrentCell();
|
Ptr::CellStore *currentCell = mWorldScene->getCurrentCell();
|
||||||
if (currentCell)
|
if (currentCell)
|
||||||
{
|
{
|
||||||
if (!(currentCell->cell->mData.mFlags & ESM::Cell::Interior))
|
return currentCell->mCell->isExterior();
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1046,7 +1043,7 @@ namespace MWWorld
|
||||||
Ptr::CellStore *currentCell = mWorldScene->getCurrentCell();
|
Ptr::CellStore *currentCell = mWorldScene->getCurrentCell();
|
||||||
if (currentCell)
|
if (currentCell)
|
||||||
{
|
{
|
||||||
if (!(currentCell->cell->mData.mFlags & ESM::Cell::QuasiEx))
|
if (!(currentCell->mCell->mData.mFlags & ESM::Cell::QuasiEx))
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
|
@ -1071,7 +1068,7 @@ namespace MWWorld
|
||||||
|
|
||||||
Ogre::Vector2 World::getNorthVector (CellStore* cell)
|
Ogre::Vector2 World::getNorthVector (CellStore* cell)
|
||||||
{
|
{
|
||||||
MWWorld::CellRefList<ESM::Static>& statics = cell->statics;
|
MWWorld::CellRefList<ESM::Static>& statics = cell->mStatics;
|
||||||
MWWorld::LiveCellRef<ESM::Static>* ref = statics.find("northmarker");
|
MWWorld::LiveCellRef<ESM::Static>* ref = statics.find("northmarker");
|
||||||
if (!ref)
|
if (!ref)
|
||||||
return Vector2(0, 1);
|
return Vector2(0, 1);
|
||||||
|
@ -1085,27 +1082,27 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
std::vector<World::DoorMarker> result;
|
std::vector<World::DoorMarker> result;
|
||||||
|
|
||||||
MWWorld::CellRefList<ESM::Door>& doors = cell->doors;
|
MWWorld::CellRefList<ESM::Door>& doors = cell->mDoors;
|
||||||
std::list< MWWorld::LiveCellRef<ESM::Door> >& refList = doors.list;
|
std::list< MWWorld::LiveCellRef<ESM::Door> >& refList = doors.mList;
|
||||||
for (std::list< MWWorld::LiveCellRef<ESM::Door> >::iterator it = refList.begin(); it != refList.end(); ++it)
|
for (std::list< MWWorld::LiveCellRef<ESM::Door> >::iterator it = refList.begin(); it != refList.end(); ++it)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Door>& ref = *it;
|
MWWorld::LiveCellRef<ESM::Door>& ref = *it;
|
||||||
|
|
||||||
if (ref.ref.mTeleport)
|
if (ref.mRef.mTeleport)
|
||||||
{
|
{
|
||||||
World::DoorMarker newMarker;
|
World::DoorMarker newMarker;
|
||||||
|
|
||||||
std::string dest;
|
std::string dest;
|
||||||
if (ref.ref.mDestCell != "")
|
if (ref.mRef.mDestCell != "")
|
||||||
{
|
{
|
||||||
// door leads to an interior, use interior name
|
// door leads to an interior, use interior name
|
||||||
dest = ref.ref.mDestCell;
|
dest = ref.mRef.mDestCell;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// door leads to exterior, use cell name (if any), otherwise translated region name
|
// door leads to exterior, use cell name (if any), otherwise translated region name
|
||||||
int x,y;
|
int x,y;
|
||||||
positionToIndex (ref.ref.mDoorDest.pos[0], ref.ref.mDoorDest.pos[1], x, y);
|
positionToIndex (ref.mRef.mDoorDest.pos[0], ref.mRef.mDoorDest.pos[1], x, y);
|
||||||
const ESM::Cell* cell = mStore.cells.findExt(x,y);
|
const ESM::Cell* cell = mStore.cells.findExt(x,y);
|
||||||
if (cell->mName != "")
|
if (cell->mName != "")
|
||||||
dest = cell->mName;
|
dest = cell->mName;
|
||||||
|
@ -1256,7 +1253,7 @@ namespace MWWorld
|
||||||
/// \fixme should rely on object height
|
/// \fixme should rely on object height
|
||||||
pos.z += 30;
|
pos.z += 30;
|
||||||
|
|
||||||
return isUnderwater(*object.getCell()->cell, pos);
|
return isUnderwater(*object.getCell()->mCell, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -1292,10 +1289,10 @@ namespace MWWorld
|
||||||
mPhysics->castRay(playerPos, Ogre::Vector3(0,0,-1), 50);
|
mPhysics->castRay(playerPos, Ogre::Vector3(0,0,-1), 50);
|
||||||
bool isOnGround = (hit.first ? (hit.second.distance (playerPos) < 25) : false);
|
bool isOnGround = (hit.first ? (hit.second.distance (playerPos) < 25) : false);
|
||||||
|
|
||||||
if (!isOnGround || isUnderwater (*currentCell->cell, playerPos))
|
if (!isOnGround || isUnderwater (*currentCell->mCell, playerPos))
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
if (currentCell->cell->mData.mFlags & ESM::Cell::NoSleep)
|
if (currentCell->mCell->mData.mFlags & ESM::Cell::NoSleep)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue