mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-21 15:11:33 +00:00
uses a bitfield in refdata.hpp (#3143)
* uses a bitfield in refdata.hpp With this simple change we pack boolean values to reduce the memory requirements of game objects. * refdata.hpp [ci skip] * refdata.cpp
This commit is contained in:
parent
61168c3583
commit
e4a9eefc2a
2 changed files with 9 additions and 9 deletions
|
@ -65,21 +65,21 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
|
|
||||||
RefData::RefData (const ESM::CellRef& cellRef)
|
RefData::RefData (const ESM::CellRef& cellRef)
|
||||||
: mBaseNode(nullptr), mDeletedByContentFile(false), mEnabled (true),
|
: mBaseNode(nullptr), mDeletedByContentFile(false), mEnabled (true), mPhysicsPostponed(false),
|
||||||
mCount (1), mPosition (cellRef.mPos),
|
mCount (1), mPosition (cellRef.mPos),
|
||||||
mCustomData (nullptr),
|
mCustomData (nullptr),
|
||||||
mChanged(false), mFlags(0), mPhysicsPostponed(false) // Loading from ESM/ESP files -> assume unchanged
|
mChanged(false), mFlags(0) // Loading from ESM/ESP files -> assume unchanged
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
RefData::RefData (const ESM::ObjectState& objectState, bool deletedByContentFile)
|
RefData::RefData (const ESM::ObjectState& objectState, bool deletedByContentFile)
|
||||||
: mBaseNode(nullptr), mDeletedByContentFile(deletedByContentFile),
|
: mBaseNode(nullptr), mDeletedByContentFile(deletedByContentFile),
|
||||||
mEnabled (objectState.mEnabled != 0),
|
mEnabled (objectState.mEnabled != 0), mPhysicsPostponed(false),
|
||||||
mCount (objectState.mCount),
|
mCount (objectState.mCount),
|
||||||
mPosition (objectState.mPosition),
|
mPosition (objectState.mPosition),
|
||||||
mAnimationState(objectState.mAnimationState),
|
mAnimationState(objectState.mAnimationState),
|
||||||
mCustomData (nullptr),
|
mCustomData (nullptr),
|
||||||
mChanged(true), mFlags(objectState.mFlags), mPhysicsPostponed(false) // Loading from a savegame -> assume changed
|
mChanged(true), mFlags(objectState.mFlags) // Loading from a savegame -> assume changed
|
||||||
{
|
{
|
||||||
// "Note that the ActivationFlag_UseEnabled is saved to the reference,
|
// "Note that the ActivationFlag_UseEnabled is saved to the reference,
|
||||||
// which will result in permanently suppressed activation if the reference script is removed.
|
// which will result in permanently suppressed activation if the reference script is removed.
|
||||||
|
|
|
@ -41,9 +41,12 @@ namespace MWWorld
|
||||||
|
|
||||||
/// separate delete flag used for deletion by a content file
|
/// separate delete flag used for deletion by a content file
|
||||||
/// @note not stored in the save game file.
|
/// @note not stored in the save game file.
|
||||||
bool mDeletedByContentFile;
|
bool mDeletedByContentFile:1;
|
||||||
|
|
||||||
bool mEnabled;
|
bool mEnabled:1;
|
||||||
|
public:
|
||||||
|
bool mPhysicsPostponed:1;
|
||||||
|
private:
|
||||||
|
|
||||||
/// 0: deleted
|
/// 0: deleted
|
||||||
int mCount;
|
int mCount;
|
||||||
|
@ -63,9 +66,6 @@ namespace MWWorld
|
||||||
unsigned int mFlags;
|
unsigned int mFlags;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
bool mPhysicsPostponed;
|
|
||||||
|
|
||||||
RefData();
|
RefData();
|
||||||
|
|
||||||
/// @param cellRef Used to copy constant data such as position into this class where it can
|
/// @param cellRef Used to copy constant data such as position into this class where it can
|
||||||
|
|
Loading…
Reference in a new issue