mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-01 15:15:33 +00:00
commit
d3d6a69eea
52 changed files with 257 additions and 129 deletions
|
@ -66,9 +66,9 @@ namespace MWClass
|
|||
return ref->mBase->mName;
|
||||
}
|
||||
|
||||
std::string Activator::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Activator::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||
const MWWorld::LiveCellRef<ESM::Activator> *ref =
|
||||
ptr.get<ESM::Activator>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual boost::shared_ptr<MWWorld::Action> activate (const MWWorld::Ptr& ptr, const MWWorld::Ptr& actor) const;
|
||||
|
|
|
@ -64,10 +64,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Apparatus::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Apparatus::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Apparatus> *ref =
|
||||
ptr.get<ESM::Apparatus>();
|
||||
const MWWorld::LiveCellRef<ESM::Apparatus> *ref = ptr.get<ESM::Apparatus>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace MWClass
|
|||
const MWWorld::Ptr& actor) const;
|
||||
///< Generate action for activation
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual int getValue (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -83,10 +83,9 @@ namespace MWClass
|
|||
return ref->mBase->mData.mHealth;
|
||||
}
|
||||
|
||||
std::string Armor::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Armor::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Armor> *ref =
|
||||
ptr.get<ESM::Armor>();
|
||||
const MWWorld::LiveCellRef<ESM::Armor> *ref = ptr.get<ESM::Armor>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace MWClass
|
|||
virtual int getItemMaxHealth (const MWWorld::Ptr& ptr) const;
|
||||
///< Return item max health or throw an exception, if class does not have item health
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual std::pair<std::vector<int>, bool> getEquipmentSlots (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -78,10 +78,9 @@ namespace MWClass
|
|||
return boost::shared_ptr<MWWorld::Action>(new MWWorld::ActionRead(ptr));
|
||||
}
|
||||
|
||||
std::string Book::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Book::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Book> *ref =
|
||||
ptr.get<ESM::Book>();
|
||||
const MWWorld::LiveCellRef<ESM::Book> *ref = ptr.get<ESM::Book>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace MWClass
|
|||
const MWWorld::Ptr& actor) const;
|
||||
///< Generate action for activation
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual bool hasToolTip (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -66,10 +66,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Clothing::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Clothing::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Clothing> *ref =
|
||||
ptr.get<ESM::Clothing>();
|
||||
const MWWorld::LiveCellRef<ESM::Clothing> *ref = ptr.get<ESM::Clothing>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace MWClass
|
|||
const MWWorld::Ptr& actor) const;
|
||||
///< Generate action for activation
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual std::pair<std::vector<int>, bool> getEquipmentSlots (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -209,10 +209,9 @@ namespace MWClass
|
|||
return ptr.getRefData().getCustomData()->asContainerCustomData().mContainerStore;
|
||||
}
|
||||
|
||||
std::string Container::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Container::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||
ptr.get<ESM::Container>();
|
||||
const MWWorld::LiveCellRef<ESM::Container> *ref = ptr.get<ESM::Container>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
@ -299,6 +298,8 @@ namespace MWClass
|
|||
|
||||
void Container::readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state) const
|
||||
{
|
||||
if (!state.mHasCustomState)
|
||||
return;
|
||||
const ESM::ContainerState& state2 = dynamic_cast<const ESM::ContainerState&> (state);
|
||||
|
||||
if (!ptr.getRefData().getCustomData())
|
||||
|
@ -312,13 +313,17 @@ namespace MWClass
|
|||
readState (state2.mInventory);
|
||||
}
|
||||
|
||||
void Container::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state) const
|
||||
void Container::writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state) const
|
||||
{
|
||||
ESM::ContainerState& state2 = dynamic_cast<ESM::ContainerState&> (state);
|
||||
|
||||
ensureCustomData (ptr);
|
||||
if (!ptr.getRefData().getCustomData())
|
||||
{
|
||||
state.mHasCustomState = false;
|
||||
return;
|
||||
}
|
||||
|
||||
dynamic_cast<ContainerCustomData&> (*ptr.getRefData().getCustomData()).mContainerStore.
|
||||
dynamic_cast<const ContainerCustomData&> (*ptr.getRefData().getCustomData()).mContainerStore.
|
||||
writeState (state2.mInventory);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace MWClass
|
|||
virtual MWWorld::ContainerStore& getContainerStore (const MWWorld::Ptr& ptr) const;
|
||||
///< Return container store
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual float getCapacity (const MWWorld::Ptr& ptr) const;
|
||||
|
@ -63,7 +63,7 @@ namespace MWClass
|
|||
const;
|
||||
///< Read additional state from \a state into \a ptr.
|
||||
|
||||
virtual void writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
virtual void writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const;
|
||||
///< Write additional state from \a ptr into \a state.
|
||||
|
||||
|
|
|
@ -444,9 +444,9 @@ namespace MWClass
|
|||
return isFlagBitSet(ptr, ESM::Creature::Weapon);
|
||||
}
|
||||
|
||||
std::string Creature::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Creature::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
||||
const MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
@ -724,7 +724,7 @@ namespace MWClass
|
|||
customData.mCreatureStats.readState (state2.mCreatureStats);
|
||||
}
|
||||
|
||||
void Creature::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
void Creature::writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const
|
||||
{
|
||||
ESM::CreatureState& state2 = dynamic_cast<ESM::CreatureState&> (state);
|
||||
|
@ -735,9 +735,7 @@ namespace MWClass
|
|||
return;
|
||||
}
|
||||
|
||||
ensureCustomData (ptr);
|
||||
|
||||
CreatureCustomData& customData = ptr.getRefData().getCustomData()->asCreatureCustomData();
|
||||
const CreatureCustomData& customData = dynamic_cast<const CreatureCustomData&>(*ptr.getRefData().getCustomData());
|
||||
|
||||
customData.mContainerStore->writeState (state2.mInventory);
|
||||
customData.mCreatureStats.writeState (state2.mCreatureStats);
|
||||
|
|
|
@ -74,7 +74,7 @@ namespace MWClass
|
|||
|
||||
virtual bool hasInventoryStore (const MWWorld::Ptr &ptr) const;
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual float getCapacity (const MWWorld::Ptr& ptr) const;
|
||||
|
@ -117,12 +117,10 @@ namespace MWClass
|
|||
/// Get a blood texture suitable for \a ptr (see Blood Texture 0-2 in Morrowind.ini)
|
||||
virtual int getBloodTexture (const MWWorld::Ptr& ptr) const;
|
||||
|
||||
virtual void readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state)
|
||||
const;
|
||||
virtual void readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state) const;
|
||||
///< Read additional state from \a state into \a ptr.
|
||||
|
||||
virtual void writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
const;
|
||||
virtual void writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state) const;
|
||||
///< Write additional state from \a ptr into \a state.
|
||||
|
||||
virtual int getBaseGold(const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -104,6 +104,9 @@ namespace MWClass
|
|||
void CreatureLevList::readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state)
|
||||
const
|
||||
{
|
||||
if (!state.mHasCustomState)
|
||||
return;
|
||||
|
||||
const ESM::CreatureLevListState& state2 = dynamic_cast<const ESM::CreatureLevListState&> (state);
|
||||
|
||||
ensureCustomData(ptr);
|
||||
|
@ -112,13 +115,18 @@ namespace MWClass
|
|||
customData.mSpawn = state2.mSpawn;
|
||||
}
|
||||
|
||||
void CreatureLevList::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
void CreatureLevList::writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const
|
||||
{
|
||||
ESM::CreatureLevListState& state2 = dynamic_cast<ESM::CreatureLevListState&> (state);
|
||||
|
||||
ensureCustomData(ptr);
|
||||
CreatureLevListCustomData& customData = ptr.getRefData().getCustomData()->asCreatureLevListCustomData();
|
||||
if (!ptr.getRefData().getCustomData())
|
||||
{
|
||||
state.mHasCustomState = false;
|
||||
return;
|
||||
}
|
||||
|
||||
const CreatureLevListCustomData& customData = dynamic_cast<const CreatureLevListCustomData&>(*ptr.getRefData().getCustomData());
|
||||
state2.mSpawnActorId = customData.mSpawnActorId;
|
||||
state2.mSpawn = customData.mSpawn;
|
||||
}
|
||||
|
|
|
@ -23,12 +23,10 @@ namespace MWClass
|
|||
virtual void insertObjectRendering (const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface) const;
|
||||
///< Add reference into a cell for rendering
|
||||
|
||||
virtual void readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state)
|
||||
const;
|
||||
virtual void readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state) const;
|
||||
///< Read additional state from \a state into \a ptr.
|
||||
|
||||
virtual void writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
const;
|
||||
virtual void writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state) const;
|
||||
///< Write additional state from \a ptr into \a state.
|
||||
|
||||
virtual void respawn (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -217,10 +217,9 @@ namespace MWClass
|
|||
return true;
|
||||
}
|
||||
|
||||
std::string Door::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Door::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Door> *ref =
|
||||
ptr.get<ESM::Door>();
|
||||
const MWWorld::LiveCellRef<ESM::Door> *ref = ptr.get<ESM::Door>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
@ -343,6 +342,8 @@ namespace MWClass
|
|||
|
||||
void Door::readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state) const
|
||||
{
|
||||
if (!state.mHasCustomState)
|
||||
return;
|
||||
ensureCustomData(ptr);
|
||||
DoorCustomData& customData = ptr.getRefData().getCustomData()->asDoorCustomData();
|
||||
|
||||
|
@ -350,10 +351,14 @@ namespace MWClass
|
|||
customData.mDoorState = state2.mDoorState;
|
||||
}
|
||||
|
||||
void Door::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state) const
|
||||
void Door::writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state) const
|
||||
{
|
||||
ensureCustomData(ptr);
|
||||
const DoorCustomData& customData = ptr.getRefData().getCustomData()->asDoorCustomData();
|
||||
if (!ptr.getRefData().getCustomData())
|
||||
{
|
||||
state.mHasCustomState = false;
|
||||
return;
|
||||
}
|
||||
const DoorCustomData& customData = dynamic_cast<const DoorCustomData&>(*ptr.getRefData().getCustomData());
|
||||
|
||||
ESM::DoorState& state2 = dynamic_cast<ESM::DoorState&>(state);
|
||||
state2.mDoorState = customData.mDoorState;
|
||||
|
|
|
@ -49,7 +49,7 @@ namespace MWClass
|
|||
|
||||
virtual bool canLock(const MWWorld::Ptr &ptr) const;
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
static void registerSelf();
|
||||
|
@ -66,7 +66,7 @@ namespace MWClass
|
|||
const;
|
||||
///< Read additional state from \a state into \a ptr.
|
||||
|
||||
virtual void writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
virtual void writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const;
|
||||
///< Write additional state from \a ptr into \a state.
|
||||
};
|
||||
|
|
|
@ -70,10 +70,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Ingredient::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Ingredient::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Ingredient> *ref =
|
||||
ptr.get<ESM::Ingredient>();
|
||||
const MWWorld::LiveCellRef<ESM::Ingredient> *ref = ptr.get<ESM::Ingredient>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual int getValue (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -96,10 +96,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Light::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Light::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Light> *ref =
|
||||
ptr.get<ESM::Light>();
|
||||
const MWWorld::LiveCellRef<ESM::Light> *ref = ptr.get<ESM::Light>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
const MWWorld::Ptr& actor) const;
|
||||
///< Generate action for activation
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual std::pair<std::vector<int>, bool> getEquipmentSlots (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -65,10 +65,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Lockpick::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Lockpick::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Lockpick> *ref =
|
||||
ptr.get<ESM::Lockpick>();
|
||||
const MWWorld::LiveCellRef<ESM::Lockpick> *ref = ptr.get<ESM::Lockpick>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual std::pair<std::vector<int>, bool> getEquipmentSlots (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -78,10 +78,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Miscellaneous::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Miscellaneous::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Miscellaneous> *ref =
|
||||
ptr.get<ESM::Miscellaneous>();
|
||||
const MWWorld::LiveCellRef<ESM::Miscellaneous> *ref = ptr.get<ESM::Miscellaneous>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual int getValue (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -799,10 +799,9 @@ namespace MWClass
|
|||
return ptr.getRefData().getCustomData()->asNpcCustomData().mInventoryStore;
|
||||
}
|
||||
|
||||
std::string Npc::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Npc::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::NPC> *ref =
|
||||
ptr.get<ESM::NPC>();
|
||||
const MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
}
|
||||
|
@ -1176,7 +1175,7 @@ namespace MWClass
|
|||
static_cast<MWMechanics::CreatureStats&> (customData.mNpcStats).readState (state2.mCreatureStats);
|
||||
}
|
||||
|
||||
void Npc::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
void Npc::writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const
|
||||
{
|
||||
ESM::NpcState& state2 = dynamic_cast<ESM::NpcState&> (state);
|
||||
|
@ -1187,9 +1186,7 @@ namespace MWClass
|
|||
return;
|
||||
}
|
||||
|
||||
ensureCustomData (ptr);
|
||||
|
||||
NpcCustomData& customData = ptr.getRefData().getCustomData()->asNpcCustomData();
|
||||
const NpcCustomData& customData = dynamic_cast<const NpcCustomData&>(*ptr.getRefData().getCustomData());
|
||||
|
||||
customData.mInventoryStore.writeState (state2.mInventory);
|
||||
customData.mNpcStats.writeState (state2.mNpcStats);
|
||||
|
|
|
@ -80,7 +80,7 @@ namespace MWClass
|
|||
const MWWorld::Ptr& actor) const;
|
||||
///< Generate action for activation
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual float getSpeed (const MWWorld::Ptr& ptr) const;
|
||||
|
@ -145,7 +145,7 @@ namespace MWClass
|
|||
const;
|
||||
///< Read additional state from \a state into \a ptr.
|
||||
|
||||
virtual void writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
virtual void writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const;
|
||||
///< Write additional state from \a ptr into \a state.
|
||||
|
||||
|
|
|
@ -68,9 +68,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Potion::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Potion::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||
const MWWorld::LiveCellRef<ESM::Potion> *ref =
|
||||
ptr.get<ESM::Potion>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual int getValue (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -64,9 +64,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Probe::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Probe::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||
const MWWorld::LiveCellRef<ESM::Probe> *ref =
|
||||
ptr.get<ESM::Probe>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual std::pair<std::vector<int>, bool> getEquipmentSlots (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -64,9 +64,9 @@ namespace MWClass
|
|||
return defaultItemActivate(ptr, actor);
|
||||
}
|
||||
|
||||
std::string Repair::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Repair::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||
const MWWorld::LiveCellRef<ESM::Repair> *ref =
|
||||
ptr.get<ESM::Repair>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace MWClass
|
|||
virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const;
|
||||
///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip.
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual int getValue (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -84,9 +84,9 @@ namespace MWClass
|
|||
return ref->mBase->mData.mHealth;
|
||||
}
|
||||
|
||||
std::string Weapon::getScript (const MWWorld::Ptr& ptr) const
|
||||
std::string Weapon::getScript (const MWWorld::ConstPtr& ptr) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||
const MWWorld::LiveCellRef<ESM::Weapon> *ref =
|
||||
ptr.get<ESM::Weapon>();
|
||||
|
||||
return ref->mBase->mScript;
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace MWClass
|
|||
virtual int getItemMaxHealth (const MWWorld::Ptr& ptr) const;
|
||||
///< Return item max health or throw an exception, if class does not have item health
|
||||
|
||||
virtual std::string getScript (const MWWorld::Ptr& ptr) const;
|
||||
virtual std::string getScript (const MWWorld::ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr
|
||||
|
||||
virtual std::pair<std::vector<int>, bool> getEquipmentSlots (const MWWorld::Ptr& ptr) const;
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace MWRender
|
|||
MWWorld::Store<ESM::Land>::iterator it = esmStore.get<ESM::Land>().begin();
|
||||
for (; it != esmStore.get<ESM::Land>().end(); ++it)
|
||||
{
|
||||
ESM::Land* land = const_cast<ESM::Land*>(&*it); // TODO: fix store interface
|
||||
const ESM::Land* land = &*it;
|
||||
land->loadData(ESM::Land::DATA_VCLR|ESM::Land::DATA_VHGT|ESM::Land::DATA_VNML|ESM::Land::DATA_VTEX);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -346,15 +346,15 @@ namespace MWWorld
|
|||
if (mState==State_Preloaded)
|
||||
return std::binary_search (mIds.begin(), mIds.end(), id);
|
||||
|
||||
/// \todo address const-issues
|
||||
return searchConst (id).isEmpty();
|
||||
}
|
||||
|
||||
template <typename PtrType>
|
||||
struct SearchVisitor
|
||||
{
|
||||
MWWorld::Ptr mFound;
|
||||
PtrType mFound;
|
||||
std::string mIdToFind;
|
||||
bool operator()(const MWWorld::Ptr& ptr)
|
||||
bool operator()(const PtrType& ptr)
|
||||
{
|
||||
if (ptr.getCellRef().getRefId() == mIdToFind)
|
||||
{
|
||||
|
@ -367,19 +367,18 @@ namespace MWWorld
|
|||
|
||||
Ptr CellStore::search (const std::string& id)
|
||||
{
|
||||
SearchVisitor searchVisitor;
|
||||
SearchVisitor<MWWorld::Ptr> searchVisitor;
|
||||
searchVisitor.mIdToFind = id;
|
||||
forEach(searchVisitor);
|
||||
return searchVisitor.mFound;
|
||||
}
|
||||
|
||||
Ptr CellStore::searchConst (const std::string& id) const
|
||||
ConstPtr CellStore::searchConst (const std::string& id) const
|
||||
{
|
||||
bool oldState = mHasState;
|
||||
/// \todo address const-issues
|
||||
Ptr result = const_cast<CellStore*>(this)->search(id);
|
||||
const_cast<CellStore*>(this)->mHasState = oldState;
|
||||
return result;
|
||||
SearchVisitor<MWWorld::ConstPtr> searchVisitor;
|
||||
searchVisitor.mIdToFind = id;
|
||||
forEachConst(searchVisitor);
|
||||
return searchVisitor.mFound;
|
||||
}
|
||||
|
||||
Ptr CellStore::searchViaActorId (int id)
|
||||
|
|
|
@ -214,10 +214,10 @@ namespace MWWorld
|
|||
/// containers.
|
||||
/// @note Triggers CellStore hasState flag.
|
||||
|
||||
Ptr searchConst (const std::string& id) const;
|
||||
ConstPtr searchConst (const std::string& id) const;
|
||||
///< Will return an empty Ptr if cell is not loaded. Does not check references in
|
||||
/// containers.
|
||||
/// @note Does not trigger CellStore hasState flag. Do not modify the returned Ptr!
|
||||
/// @note Does not trigger CellStore hasState flag.
|
||||
|
||||
Ptr searchViaActorId (int id);
|
||||
///< Will return an empty Ptr if cell is not loaded.
|
||||
|
@ -240,8 +240,9 @@ namespace MWWorld
|
|||
void preload ();
|
||||
///< Build ID list from content file.
|
||||
|
||||
/// Call visitor (ref) for each reference. visitor must return a bool. Returning
|
||||
/// Call visitor (MWWorld::Ptr) for each reference. visitor must return a bool. Returning
|
||||
/// false will abort the iteration.
|
||||
/// \note Prefer using forEachConst when possible.
|
||||
/// \attention This function also lists deleted (count 0) objects!
|
||||
/// \return Iteration completed?
|
||||
template<class Visitor>
|
||||
|
@ -263,6 +264,28 @@ namespace MWWorld
|
|||
return true;
|
||||
}
|
||||
|
||||
/// Call visitor (MWWorld::ConstPtr) for each reference. visitor must return a bool. Returning
|
||||
/// false will abort the iteration.
|
||||
/// \attention This function also lists deleted (count 0) objects!
|
||||
/// \return Iteration completed?
|
||||
template<class Visitor>
|
||||
bool forEachConst (Visitor& visitor) const
|
||||
{
|
||||
if (mState != State_Loaded)
|
||||
return false;
|
||||
|
||||
for (unsigned int i=0; i<mMergedRefs.size(); ++i)
|
||||
{
|
||||
if (!isAccessible(mMergedRefs[i]->mData, mMergedRefs[i]->mRef))
|
||||
continue;
|
||||
|
||||
if (!visitor(MWWorld::ConstPtr(mMergedRefs[i], this)))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// Call visitor (ref) for each reference of given type. visitor must return a bool. Returning
|
||||
/// false will abort the iteration.
|
||||
/// \attention This function also lists deleted (count 0) objects!
|
||||
|
@ -298,9 +321,6 @@ namespace MWWorld
|
|||
return true;
|
||||
}
|
||||
|
||||
/// \todo add const version of forEach
|
||||
|
||||
|
||||
// NOTE: does not account for moved references
|
||||
// Should be phased out when we have const version of forEach
|
||||
inline const CellRefList<ESM::Door>& getReadOnlyDoors() const
|
||||
|
|
|
@ -158,7 +158,7 @@ namespace MWWorld
|
|||
return -1;
|
||||
}
|
||||
|
||||
std::string Class::getScript (const Ptr& ptr) const
|
||||
std::string Class::getScript (const ConstPtr& ptr) const
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
@ -397,7 +397,7 @@ namespace MWWorld
|
|||
|
||||
void Class::readAdditionalState (const MWWorld::Ptr& ptr, const ESM::ObjectState& state) const {}
|
||||
|
||||
void Class::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state) const {}
|
||||
void Class::writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state) const {}
|
||||
|
||||
int Class::getBaseGold(const MWWorld::Ptr& ptr) const
|
||||
{
|
||||
|
|
|
@ -171,7 +171,7 @@ namespace MWWorld
|
|||
///< Returns the remaining duration of the object, such as an equippable light
|
||||
/// source. (default implementation: -1, i.e. infinite)
|
||||
|
||||
virtual std::string getScript (const Ptr& ptr) const;
|
||||
virtual std::string getScript (const ConstPtr& ptr) const;
|
||||
///< Return name of the script attached to ptr (default implementation: return an empty
|
||||
/// string).
|
||||
|
||||
|
@ -313,7 +313,7 @@ namespace MWWorld
|
|||
const;
|
||||
///< Read additional state from \a state into \a ptr.
|
||||
|
||||
virtual void writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||
virtual void writeAdditionalState (const MWWorld::ConstPtr& ptr, ESM::ObjectState& state)
|
||||
const;
|
||||
///< Write additional state from \a ptr into \a state.
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ void MWWorld::ContainerStore::storeState (const LiveCellRef<T>& ref, ESM::Object
|
|||
}
|
||||
|
||||
template<typename T>
|
||||
void MWWorld::ContainerStore::storeStates (CellRefList<T>& collection,
|
||||
void MWWorld::ContainerStore::storeStates (const CellRefList<T>& collection,
|
||||
ESM::InventoryState& inventory, int& index, bool equipable) const
|
||||
{
|
||||
for (typename CellRefList<T>::List::const_iterator iter (collection.mList.begin());
|
||||
|
@ -707,7 +707,7 @@ MWWorld::Ptr MWWorld::ContainerStore::search (const std::string& id)
|
|||
return Ptr();
|
||||
}
|
||||
|
||||
void MWWorld::ContainerStore::writeState (ESM::InventoryState& state)
|
||||
void MWWorld::ContainerStore::writeState (ESM::InventoryState& state) const
|
||||
{
|
||||
state.mItems.clear();
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ namespace MWWorld
|
|||
void storeState (const LiveCellRef<T>& ref, ESM::ObjectState& state) const;
|
||||
|
||||
template<typename T>
|
||||
void storeStates (CellRefList<T>& collection,
|
||||
void storeStates (const CellRefList<T>& collection,
|
||||
ESM::InventoryState& inventory, int& index,
|
||||
bool equipable = false) const;
|
||||
|
||||
|
@ -169,8 +169,7 @@ namespace MWWorld
|
|||
|
||||
Ptr search (const std::string& id);
|
||||
|
||||
/// \todo make this method const once const-correct ContainerStoreIterators are available
|
||||
virtual void writeState (ESM::InventoryState& state);
|
||||
virtual void writeState (ESM::InventoryState& state) const;
|
||||
|
||||
virtual void readState (const ESM::InventoryState& state);
|
||||
|
||||
|
|
|
@ -752,7 +752,7 @@ bool MWWorld::InventoryStore::isEquipped(const MWWorld::Ptr &item)
|
|||
return false;
|
||||
}
|
||||
|
||||
void MWWorld::InventoryStore::writeState(ESM::InventoryState &state)
|
||||
void MWWorld::InventoryStore::writeState(ESM::InventoryState &state) const
|
||||
{
|
||||
MWWorld::ContainerStore::writeState(state);
|
||||
|
||||
|
|
|
@ -207,7 +207,7 @@ namespace MWWorld
|
|||
virtual void clear();
|
||||
///< Empty container.
|
||||
|
||||
virtual void writeState (ESM::InventoryState& state);
|
||||
virtual void writeState (ESM::InventoryState& state) const;
|
||||
|
||||
virtual void readState (const ESM::InventoryState& state);
|
||||
};
|
||||
|
|
|
@ -54,8 +54,7 @@ void MWWorld::LiveCellRefBase::saveImp (ESM::ObjectState& state) const
|
|||
{
|
||||
mRef.writeState(state);
|
||||
|
||||
/// \todo get rid of this cast once const-correct Ptr are available
|
||||
Ptr ptr (const_cast<LiveCellRefBase *> (this));
|
||||
ConstPtr ptr (this);
|
||||
|
||||
mData.write (state, mClass->getScript (ptr));
|
||||
|
||||
|
|
|
@ -52,3 +52,25 @@ MWWorld::Ptr::operator const void *()
|
|||
{
|
||||
return mRef;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
const std::string &MWWorld::ConstPtr::getTypeName() const
|
||||
{
|
||||
if(mRef != 0)
|
||||
return mRef->mClass->getTypeName();
|
||||
throw std::runtime_error("Can't get type name from an empty object.");
|
||||
}
|
||||
|
||||
const MWWorld::LiveCellRefBase *MWWorld::ConstPtr::getBase() const
|
||||
{
|
||||
if (!mRef)
|
||||
throw std::runtime_error ("Can't access cell ref pointed to by null Ptr");
|
||||
|
||||
return mRef;
|
||||
}
|
||||
|
||||
MWWorld::ConstPtr::operator const void *()
|
||||
{
|
||||
return mRef;
|
||||
}
|
||||
|
|
|
@ -85,6 +85,87 @@ namespace MWWorld
|
|||
///< Return a 0-pointer, if Ptr is empty; return a non-0-pointer, if Ptr is not empty
|
||||
};
|
||||
|
||||
/// \brief Pointer to a const LiveCellRef
|
||||
/// @note a Ptr can be implicitely converted to a ConstPtr, but you can not convert a ConstPtr to a Ptr.
|
||||
class ConstPtr
|
||||
{
|
||||
public:
|
||||
|
||||
const MWWorld::LiveCellRefBase *mRef;
|
||||
const CellStore *mCell;
|
||||
const ContainerStore *mContainerStore;
|
||||
|
||||
public:
|
||||
ConstPtr(const MWWorld::LiveCellRefBase *liveCellRef=0, const CellStore *cell=0)
|
||||
: mRef(liveCellRef), mCell(cell), mContainerStore(0)
|
||||
{
|
||||
}
|
||||
|
||||
ConstPtr(const MWWorld::Ptr& ptr)
|
||||
: mRef(ptr.mRef), mCell(ptr.mCell), mContainerStore(ptr.mContainerStore)
|
||||
{
|
||||
}
|
||||
|
||||
bool isEmpty() const
|
||||
{
|
||||
return mRef == 0;
|
||||
}
|
||||
|
||||
const std::string& getTypeName() const;
|
||||
|
||||
const Class& getClass() const
|
||||
{
|
||||
if(mRef != 0)
|
||||
return *(mRef->mClass);
|
||||
throw std::runtime_error("Cannot get class of an empty object");
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const MWWorld::LiveCellRef<T> *get() const
|
||||
{
|
||||
const MWWorld::LiveCellRef<T> *ref = dynamic_cast<const MWWorld::LiveCellRef<T>*>(mRef);
|
||||
if(ref) return ref;
|
||||
|
||||
std::stringstream str;
|
||||
str<< "Bad LiveCellRef cast to "<<typeid(T).name()<<" from ";
|
||||
if(mRef != 0) str<< getTypeName();
|
||||
else str<< "an empty object";
|
||||
|
||||
throw std::runtime_error(str.str());
|
||||
}
|
||||
|
||||
const MWWorld::LiveCellRefBase *getBase() const;
|
||||
|
||||
const MWWorld::CellRef& getCellRef() const
|
||||
{
|
||||
assert(mRef);
|
||||
return mRef->mRef;
|
||||
}
|
||||
|
||||
const RefData& getRefData() const
|
||||
{
|
||||
assert(mRef);
|
||||
return mRef->mData;
|
||||
}
|
||||
|
||||
const CellStore *getCell() const
|
||||
{
|
||||
assert(mCell);
|
||||
return mCell;
|
||||
}
|
||||
|
||||
bool isInCell() const
|
||||
{
|
||||
return (mContainerStore == 0) && (mCell != 0);
|
||||
}
|
||||
|
||||
const ContainerStore *getContainerStore() const;
|
||||
///< May return a 0-pointer, if reference is not in a container.
|
||||
|
||||
operator const void *();
|
||||
///< Return a 0-pointer, if Ptr is empty; return a non-0-pointer, if Ptr is not empty
|
||||
};
|
||||
|
||||
inline bool operator== (const Ptr& left, const Ptr& right)
|
||||
{
|
||||
return left.mRef==right.mRef;
|
||||
|
|
|
@ -205,6 +205,11 @@ namespace MWWorld
|
|||
return mCustomData;
|
||||
}
|
||||
|
||||
const CustomData *RefData::getCustomData() const
|
||||
{
|
||||
return mCustomData;
|
||||
}
|
||||
|
||||
bool RefData::hasChanged() const
|
||||
{
|
||||
return mChanged;
|
||||
|
|
|
@ -116,6 +116,8 @@ namespace MWWorld
|
|||
CustomData *getCustomData();
|
||||
///< May return a 0-pointer. The ownership of the return data object is not transferred.
|
||||
|
||||
const CustomData *getCustomData() const;
|
||||
|
||||
bool hasChanged() const;
|
||||
///< Has this RefData changed since it was originally loaded?
|
||||
};
|
||||
|
|
|
@ -2805,7 +2805,7 @@ namespace MWWorld
|
|||
return false;
|
||||
}
|
||||
|
||||
MWWorld::Ptr World::getClosestMarker( const MWWorld::Ptr &ptr, const std::string &id )
|
||||
MWWorld::ConstPtr World::getClosestMarker( const MWWorld::Ptr &ptr, const std::string &id )
|
||||
{
|
||||
if ( ptr.getCell()->isExterior() ) {
|
||||
return getClosestMarkerFromExteriorPosition(mPlayer->getLastKnownExteriorPosition(), id);
|
||||
|
@ -2817,7 +2817,7 @@ namespace MWWorld
|
|||
std::set< std::string >checkedCells;
|
||||
std::set< std::string >currentCells;
|
||||
std::set< std::string >nextCells;
|
||||
MWWorld::Ptr closestMarker;
|
||||
MWWorld::ConstPtr closestMarker;
|
||||
|
||||
nextCells.insert( ptr.getCell()->getCell()->mName );
|
||||
while ( !nextCells.empty() ) {
|
||||
|
@ -2861,8 +2861,8 @@ namespace MWWorld
|
|||
return MWWorld::Ptr();
|
||||
}
|
||||
|
||||
MWWorld::Ptr World::getClosestMarkerFromExteriorPosition( const osg::Vec3f& worldPos, const std::string &id ) {
|
||||
MWWorld::Ptr closestMarker;
|
||||
MWWorld::ConstPtr World::getClosestMarkerFromExteriorPosition( const osg::Vec3f& worldPos, const std::string &id ) {
|
||||
MWWorld::ConstPtr closestMarker;
|
||||
float closestDistance = std::numeric_limits<float>::max();
|
||||
|
||||
std::vector<MWWorld::Ptr> markers;
|
||||
|
@ -2887,7 +2887,7 @@ namespace MWWorld
|
|||
void World::teleportToClosestMarker (const MWWorld::Ptr& ptr,
|
||||
const std::string& id)
|
||||
{
|
||||
MWWorld::Ptr closestMarker = getClosestMarker( ptr, id );
|
||||
MWWorld::ConstPtr closestMarker = getClosestMarker( ptr, id );
|
||||
|
||||
if ( closestMarker.isEmpty() )
|
||||
{
|
||||
|
@ -3047,13 +3047,13 @@ namespace MWWorld
|
|||
|
||||
void World::confiscateStolenItems(const Ptr &ptr)
|
||||
{
|
||||
MWWorld::Ptr prisonMarker = getClosestMarker( ptr, "prisonmarker" );
|
||||
MWWorld::ConstPtr prisonMarker = getClosestMarker( ptr, "prisonmarker" );
|
||||
if ( prisonMarker.isEmpty() )
|
||||
{
|
||||
std::cerr << "Failed to confiscate items: no closest prison marker found." << std::endl;
|
||||
return;
|
||||
}
|
||||
std::string prisonName = prisonMarker.mRef->mRef.getDestCell();
|
||||
std::string prisonName = prisonMarker.getCellRef().getDestCell();
|
||||
if ( prisonName.empty() )
|
||||
{
|
||||
std::cerr << "Failed to confiscate items: prison marker not linked to prison interior" << std::endl;
|
||||
|
|
|
@ -165,8 +165,8 @@ namespace MWWorld
|
|||
|
||||
float feetToGameUnits(float feet);
|
||||
|
||||
MWWorld::Ptr getClosestMarker( const MWWorld::Ptr &ptr, const std::string &id );
|
||||
MWWorld::Ptr getClosestMarkerFromExteriorPosition( const osg::Vec3f& worldPos, const std::string &id );
|
||||
MWWorld::ConstPtr getClosestMarker( const MWWorld::Ptr &ptr, const std::string &id );
|
||||
MWWorld::ConstPtr getClosestMarkerFromExteriorPosition( const osg::Vec3f& worldPos, const std::string &id );
|
||||
|
||||
public:
|
||||
|
||||
|
|
Loading…
Reference in a new issue