1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-26 18:35:20 +00:00
OpenMW/apps/openmw/mwworld/refdata.hpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

162 lines
4.5 KiB
C++
Raw Normal View History

2010-07-03 15:41:20 +02:00
#ifndef GAME_MWWORLD_REFDATA_H
#define GAME_MWWORLD_REFDATA_H
#include <components/esm/defs.hpp>
#include <components/esm3/animationstate.hpp>
2010-07-02 14:31:29 +02:00
#include "../mwscript/locals.hpp"
#include "../mwworld/customdata.hpp"
2010-08-04 14:37:23 +02:00
Store RefData::mBaseNode as osg::ref_ptr Direct leak of 16197408 byte(s) in 56241 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236928521 in MWWorld::Scene::update(float) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:315:13 #8 0x5572368d4c98 in MWWorld::World::update(float, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1833:22 #9 0x557236ebbb72 in OMW::Engine::frame(float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:418:25 #10 0x557236ed250a in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1102:14 #11 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #12 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #13 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #14 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40) Direct leak of 396288 byte(s) in 1376 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236936eb2 in MWWorld::Scene::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:888:9 #8 0x55723689a5ac in MWWorld::World::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1003:22 #9 0x5572368c249d in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1014:13 #10 0x557236e9bbce in MWState::StateManager::loadGame(MWState::Character const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:545:52 #11 0x557236e998db in MWState::StateManager::loadGame(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:377:17 #12 0x557236ed18fb in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1066:24 #13 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #14 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #15 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #16 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40)
2022-07-08 18:58:23 +02:00
#include <osg/ref_ptr>
#include <memory>
2016-01-25 14:13:16 +01:00
#include <string>
2015-04-19 17:55:56 +02:00
namespace SceneUtil
{
class PositionAttitudeTransform;
}
2010-07-02 14:31:29 +02:00
namespace ESM
{
class Script;
class CellRef;
struct ObjectState;
2010-07-02 14:31:29 +02:00
}
2020-12-18 23:21:10 +01:00
namespace MWLua
{
class LocalScripts;
}
2010-07-03 15:41:20 +02:00
namespace MWWorld
{
2013-04-16 21:17:19 +02:00
class CustomData;
2010-07-02 14:31:29 +02:00
class RefData
{
Store RefData::mBaseNode as osg::ref_ptr Direct leak of 16197408 byte(s) in 56241 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236928521 in MWWorld::Scene::update(float) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:315:13 #8 0x5572368d4c98 in MWWorld::World::update(float, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1833:22 #9 0x557236ebbb72 in OMW::Engine::frame(float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:418:25 #10 0x557236ed250a in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1102:14 #11 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #12 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #13 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #14 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40) Direct leak of 396288 byte(s) in 1376 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236936eb2 in MWWorld::Scene::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:888:9 #8 0x55723689a5ac in MWWorld::World::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1003:22 #9 0x5572368c249d in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1014:13 #10 0x557236e9bbce in MWState::StateManager::loadGame(MWState::Character const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:545:52 #11 0x557236e998db in MWState::StateManager::loadGame(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:377:17 #12 0x557236ed18fb in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1066:24 #13 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #14 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #15 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #16 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40)
2022-07-08 18:58:23 +02:00
osg::ref_ptr<SceneUtil::PositionAttitudeTransform> mBaseNode;
2022-09-22 21:26:05 +03:00
MWScript::Locals mLocals;
2020-12-18 23:21:10 +01:00
std::shared_ptr<MWLua::LocalScripts> mLuaScripts;
2010-08-04 14:04:22 +02:00
2020-12-18 23:21:10 +01:00
/// separate delete flag used for deletion by a content file
/// @note not stored in the save game file.
bool mDeletedByContentFile : 1;
bool mEnabled : 1;
public:
bool mPhysicsPostponed : 1;
2010-08-04 14:04:22 +02:00
2022-09-22 21:26:05 +03:00
private:
/// 0: deleted
int mCount;
ESM::Position mPosition;
ESM::AnimationState mAnimationState;
std::unique_ptr<CustomData> mCustomData;
void copy(const RefData& refData);
void cleanup();
2010-08-04 14:04:22 +02:00
bool mChanged;
unsigned int mFlags;
public:
RefData();
/// @param cellRef Used to copy constant data such as position into this class where it can
/// be altered without affecting the original data. This makes it possible
/// to reset the position as the original data is still held in the CellRef
RefData(const ESM::CellRef& cellRef);
2015-12-12 22:37:23 +01:00
RefData(const ESM::ObjectState& objectState, bool deletedByContentFile);
///< Ignores local variables and custom data (not enough context available here to
/// perform these operations).
RefData(const RefData& refData);
Store RefData::mBaseNode as osg::ref_ptr Direct leak of 16197408 byte(s) in 56241 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236928521 in MWWorld::Scene::update(float) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:315:13 #8 0x5572368d4c98 in MWWorld::World::update(float, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1833:22 #9 0x557236ebbb72 in OMW::Engine::frame(float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:418:25 #10 0x557236ed250a in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1102:14 #11 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #12 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #13 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #14 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40) Direct leak of 396288 byte(s) in 1376 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236936eb2 in MWWorld::Scene::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:888:9 #8 0x55723689a5ac in MWWorld::World::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1003:22 #9 0x5572368c249d in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1014:13 #10 0x557236e9bbce in MWState::StateManager::loadGame(MWState::Character const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:545:52 #11 0x557236e998db in MWState::StateManager::loadGame(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:377:17 #12 0x557236ed18fb in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1066:24 #13 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #14 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #15 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #16 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40)
2022-07-08 18:58:23 +02:00
RefData(RefData&& other);
~RefData();
2022-08-11 22:51:55 +02:00
void write(ESM::ObjectState& objectState, std::string_view scriptId = {}) const;
///< Ignores custom data (not enough context available here to
/// perform this operations).
RefData& operator=(const RefData& refData);
Store RefData::mBaseNode as osg::ref_ptr Direct leak of 16197408 byte(s) in 56241 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236928521 in MWWorld::Scene::update(float) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:315:13 #8 0x5572368d4c98 in MWWorld::World::update(float, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1833:22 #9 0x557236ebbb72 in OMW::Engine::frame(float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:418:25 #10 0x557236ed250a in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1102:14 #11 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #12 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #13 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #14 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40) Direct leak of 396288 byte(s) in 1376 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236936eb2 in MWWorld::Scene::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:888:9 #8 0x55723689a5ac in MWWorld::World::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1003:22 #9 0x5572368c249d in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1014:13 #10 0x557236e9bbce in MWState::StateManager::loadGame(MWState::Character const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:545:52 #11 0x557236e998db in MWState::StateManager::loadGame(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:377:17 #12 0x557236ed18fb in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1066:24 #13 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #14 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #15 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #16 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40)
2022-07-08 18:58:23 +02:00
RefData& operator=(RefData&& other);
/// Return base node (can be a null pointer).
SceneUtil::PositionAttitudeTransform* getBaseNode();
2015-12-18 18:02:57 +01:00
/// Return base node (can be a null pointer).
const SceneUtil::PositionAttitudeTransform* getBaseNode() const;
/// Set base node (can be a null pointer).
Store RefData::mBaseNode as osg::ref_ptr Direct leak of 16197408 byte(s) in 56241 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236928521 in MWWorld::Scene::update(float) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:315:13 #8 0x5572368d4c98 in MWWorld::World::update(float, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1833:22 #9 0x557236ebbb72 in OMW::Engine::frame(float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:418:25 #10 0x557236ed250a in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1102:14 #11 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #12 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #13 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #14 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40) Direct leak of 396288 byte(s) in 1376 object(s) allocated from: #0 0x5572356d4d42 in operator new(unsigned long) (/home/elsid/dev/openmw/build/clang/asan/openmw+0xae0d42) #1 0x557236938196 in (anonymous namespace)::addObject(MWWorld::Ptr const&, MWWorld::World const&, std::__1::vector<ESM::RefNum, std::__1::allocator<ESM::RefNum> > const&, MWPhysics::PhysicsSystem&, MWRender::RenderingManager&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:119:42 #2 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7::operator()(MWWorld::Ptr const&) const /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:62 #3 0x55723692e51b in void (anonymous namespace)::InsertVisitor::insert<MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7>(MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*)::$_7&&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:230:21 #4 0x55723692e51b in MWWorld::Scene::insertCell(MWWorld::CellStore&, Loading::Listener*) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:913:23 #5 0x55723692d451 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:449:9 #6 0x5572369299f5 in MWWorld::Scene::changeCellGrid(osg::Vec3f const&, int, int, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:612:17 #7 0x557236936eb2 in MWWorld::Scene::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:888:9 #8 0x55723689a5ac in MWWorld::World::changeToExteriorCell(ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1003:22 #9 0x5572368c249d in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1014:13 #10 0x557236e9bbce in MWState::StateManager::loadGame(MWState::Character const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:545:52 #11 0x557236e998db in MWState::StateManager::loadGame(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:377:17 #12 0x557236ed18fb in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1066:24 #13 0x557236eb621a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228:17 #14 0x55723774d622 in wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) /home/elsid/dev/openmw/components/debug/debugging.cpp:328:19 #15 0x557236eb651f in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240:12 #16 0x7fbf58a3f2cf (/usr/lib/libc.so.6+0x232cf) (BuildId: e637217a46491314667a7a37b2155cb07afc1a40)
2022-07-08 18:58:23 +02:00
void setBaseNode(osg::ref_ptr<SceneUtil::PositionAttitudeTransform> base);
int getCount(bool absolute = true) const;
void setLocals(const ESM::Script& script);
2020-12-18 23:21:10 +01:00
MWLua::LocalScripts* getLuaScripts() { return mLuaScripts.get(); }
2021-04-23 02:49:12 +02:00
void setLuaScripts(std::shared_ptr<MWLua::LocalScripts>&&);
2020-12-18 23:21:10 +01:00
void setCount(int count);
///< Set object count (an object pile is a simple object with a count >1).
///
/// \warning Do not call setCount() to add or remove objects from a
/// container or an actor's inventory. Call ContainerStore::add() or
/// ContainerStore::remove() instead.
/// This flag is only used for content stack loading and will not be stored in the savegame.
/// If the object was deleted by gameplay, then use setCount(0) instead.
2015-12-12 22:37:23 +01:00
void setDeletedByContentFile(bool deleted);
/// Returns true if the object was either deleted by the content file or by gameplay.
bool isDeleted() const;
/// Returns true if the object was deleted by a content file.
bool isDeletedByContentFile() const;
MWScript::Locals& getLocals();
bool isEnabled() const;
void enable();
void disable();
void setPosition(const ESM::Position& pos);
2015-12-07 03:51:03 +01:00
const ESM::Position& getPosition() const;
void setCustomData(std::unique_ptr<CustomData>&& value) noexcept;
2014-06-15 15:58:01 +02:00
///< Set custom data (potentially replacing old custom data). The ownership of \a data is
/// transferred to this.
CustomData* getCustomData();
///< May return a 0-pointer. The ownership of the return data object is not transferred.
const CustomData* getCustomData() const;
bool activate();
bool onActivate();
bool activateByScript();
bool hasChanged() const;
///< Has this RefData changed since it was originally loaded?
const ESM::AnimationState& getAnimationState() const;
ESM::AnimationState& getAnimationState();
2010-08-04 14:04:22 +02:00
};
}
#endif