mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-21 09:39:56 +00:00
Allow to place levelled creatures to the game world (bug 6347)
This commit is contained in:
parent
2f0484f4fc
commit
362c124e8f
@ -56,6 +56,7 @@
|
|||||||
Bug #6322: Total sold/cost should reset to 0 when there are no items offered
|
Bug #6322: Total sold/cost should reset to 0 when there are no items offered
|
||||||
Bug #6323: Wyrmhaven: Alboin doesn't follower the player character out of his house
|
Bug #6323: Wyrmhaven: Alboin doesn't follower the player character out of his house
|
||||||
Bug #6326: Detect Enchantment/Key should detect items in unresolved containers
|
Bug #6326: Detect Enchantment/Key should detect items in unresolved containers
|
||||||
|
Bug #6347: PlaceItem/PlaceItemCell/PlaceAt should work with levelled creatures
|
||||||
Feature #890: OpenMW-CS: Column filtering
|
Feature #890: OpenMW-CS: Column filtering
|
||||||
Feature #2554: Modifying an object triggers the instances table to scroll to the corresponding record
|
Feature #2554: Modifying an object triggers the instances table to scroll to the corresponding record
|
||||||
Feature #2780: A way to see current OpenMW version in the console
|
Feature #2780: A way to see current OpenMW version in the console
|
||||||
@ -79,7 +80,6 @@
|
|||||||
Task #6201: Remove the "Note: No relevant classes found. No output generated" warnings
|
Task #6201: Remove the "Note: No relevant classes found. No output generated" warnings
|
||||||
Task #6264: Remove the old classes in animation.cpp
|
Task #6264: Remove the old classes in animation.cpp
|
||||||
|
|
||||||
|
|
||||||
0.47.0
|
0.47.0
|
||||||
------
|
------
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "../mwmechanics/levelledlist.hpp"
|
#include "../mwmechanics/levelledlist.hpp"
|
||||||
|
|
||||||
|
#include "../mwworld/cellstore.hpp"
|
||||||
#include "../mwworld/customdata.hpp"
|
#include "../mwworld/customdata.hpp"
|
||||||
#include "../mwmechanics/creaturestats.hpp"
|
#include "../mwmechanics/creaturestats.hpp"
|
||||||
|
|
||||||
@ -27,6 +28,24 @@ namespace MWClass
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
MWWorld::Ptr CreatureLevList::copyToCellImpl(const MWWorld::ConstPtr &ptr, MWWorld::CellStore &cell) const
|
||||||
|
{
|
||||||
|
const MWWorld::LiveCellRef<ESM::CreatureLevList> *ref = ptr.get<ESM::CreatureLevList>();
|
||||||
|
|
||||||
|
return MWWorld::Ptr(cell.insert(ref), &cell);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreatureLevList::adjustPosition(const MWWorld::Ptr& ptr, bool force) const
|
||||||
|
{
|
||||||
|
if (ptr.getRefData().getCustomData() == nullptr)
|
||||||
|
return;
|
||||||
|
|
||||||
|
CreatureLevListCustomData& customData = ptr.getRefData().getCustomData()->asCreatureLevListCustomData();
|
||||||
|
MWWorld::Ptr creature = (customData.mSpawnActorId == -1) ? MWWorld::Ptr() : MWBase::Environment::get().getWorld()->searchPtrViaActorId(customData.mSpawnActorId);
|
||||||
|
if (!creature.isEmpty())
|
||||||
|
MWBase::Environment::get().getWorld()->adjustPosition(creature, force);
|
||||||
|
}
|
||||||
|
|
||||||
std::string CreatureLevList::getName (const MWWorld::ConstPtr& ptr) const
|
std::string CreatureLevList::getName (const MWWorld::ConstPtr& ptr) const
|
||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
|
@ -32,6 +32,10 @@ namespace MWClass
|
|||||||
///< Write additional state from \a ptr into \a state.
|
///< Write additional state from \a ptr into \a state.
|
||||||
|
|
||||||
void respawn (const MWWorld::Ptr& ptr) const override;
|
void respawn (const MWWorld::Ptr& ptr) const override;
|
||||||
|
|
||||||
|
MWWorld::Ptr copyToCellImpl(const MWWorld::ConstPtr &ptr, MWWorld::CellStore &cell) const override;
|
||||||
|
|
||||||
|
void adjustPosition(const MWWorld::Ptr& ptr, bool force) const override;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user