forked from teamnwah/openmw-tes3coop
reduced object state for objects in containers
This commit is contained in:
parent
29c3a288e3
commit
a623f03850
4 changed files with 27 additions and 22 deletions
|
@ -75,7 +75,7 @@ void ESM::CellRef::load (ESMReader& esm, bool wideRefNum)
|
||||||
esm.getHT (mNam0);
|
esm.getHT (mNam0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESM::CellRef::save (ESMWriter &esm, bool wideRefNum) const
|
void ESM::CellRef::save (ESMWriter &esm, bool wideRefNum, bool inInventory) const
|
||||||
{
|
{
|
||||||
if (wideRefNum)
|
if (wideRefNum)
|
||||||
esm.writeHNT ("FRMR", mRefNum, 8);
|
esm.writeHNT ("FRMR", mRefNum, 8);
|
||||||
|
@ -107,29 +107,32 @@ void ESM::CellRef::save (ESMWriter &esm, bool wideRefNum) const
|
||||||
esm.writeHNT("NAM9", mGoldValue);
|
esm.writeHNT("NAM9", mGoldValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mTeleport)
|
if (mTeleport && !inInventory)
|
||||||
{
|
{
|
||||||
esm.writeHNT("DODT", mDoorDest);
|
esm.writeHNT("DODT", mDoorDest);
|
||||||
esm.writeHNOCString("DNAM", mDestCell);
|
esm.writeHNOCString("DNAM", mDestCell);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mLockLevel != -1) {
|
if (mLockLevel != -1 && !inInventory)
|
||||||
esm.writeHNT("FLTV", mLockLevel);
|
esm.writeHNT("FLTV", mLockLevel);
|
||||||
}
|
|
||||||
esm.writeHNOCString("KNAM", mKey);
|
|
||||||
esm.writeHNOCString("TNAM", mTrap);
|
|
||||||
|
|
||||||
if (mReferenceBlocked != -1) {
|
if (!inInventory)
|
||||||
|
esm.writeHNOCString ("KNAM", mKey);
|
||||||
|
|
||||||
|
if (!inInventory)
|
||||||
|
esm.writeHNOCString ("TNAM", mTrap);
|
||||||
|
|
||||||
|
if (mReferenceBlocked != -1)
|
||||||
esm.writeHNT("UNAM", mReferenceBlocked);
|
esm.writeHNT("UNAM", mReferenceBlocked);
|
||||||
}
|
|
||||||
if (mFltv != 0) {
|
|
||||||
esm.writeHNT("FLTV", mFltv);
|
|
||||||
}
|
|
||||||
|
|
||||||
esm.writeHNT("DATA", mPos, 24);
|
if (mFltv != 0 && !inInventory)
|
||||||
if (mNam0 != 0) {
|
esm.writeHNT("FLTV", mFltv);
|
||||||
|
|
||||||
|
if (!inInventory)
|
||||||
|
esm.writeHNT("DATA", mPos, 24);
|
||||||
|
|
||||||
|
if (mNam0 != 0 && !inInventory)
|
||||||
esm.writeHNT("NAM0", mNam0);
|
esm.writeHNT("NAM0", mNam0);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESM::CellRef::blank()
|
void ESM::CellRef::blank()
|
||||||
|
|
|
@ -89,7 +89,7 @@ namespace ESM
|
||||||
|
|
||||||
void load (ESMReader& esm, bool wideRefNum = false);
|
void load (ESMReader& esm, bool wideRefNum = false);
|
||||||
|
|
||||||
void save(ESMWriter &esm, bool wideRefNum = false) const;
|
void save (ESMWriter &esm, bool wideRefNum = false, bool inInventory = false) const;
|
||||||
|
|
||||||
void blank();
|
void blank();
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,9 +25,9 @@ void ESM::ObjectState::load (ESMReader &esm)
|
||||||
esm.getHNT (mLocalRotation, "LROT", 12);
|
esm.getHNT (mLocalRotation, "LROT", 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESM::ObjectState::save (ESMWriter &esm) const
|
void ESM::ObjectState::save (ESMWriter &esm, bool inInventory) const
|
||||||
{
|
{
|
||||||
mRef.save (esm, true);
|
mRef.save (esm, true, inInventory);
|
||||||
|
|
||||||
if (mHasLocals)
|
if (mHasLocals)
|
||||||
{
|
{
|
||||||
|
@ -35,13 +35,15 @@ void ESM::ObjectState::save (ESMWriter &esm) const
|
||||||
mLocals.save (esm);
|
mLocals.save (esm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mEnabled)
|
if (!mEnabled && !inInventory)
|
||||||
esm.writeHNT ("ENAB", mEnabled);
|
esm.writeHNT ("ENAB", mEnabled);
|
||||||
|
|
||||||
if (mCount!=1)
|
if (mCount!=1)
|
||||||
esm.writeHNT ("COUN", mCount);
|
esm.writeHNT ("COUN", mCount);
|
||||||
|
|
||||||
esm.writeHNT ("POS_", mPosition, 24);
|
if (!inInventory)
|
||||||
|
{
|
||||||
esm.writeHNT ("LROT", mLocalRotation, 12);
|
esm.writeHNT ("POS_", mPosition, 24);
|
||||||
|
esm.writeHNT ("LROT", mLocalRotation, 12);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -27,7 +27,7 @@ namespace ESM
|
||||||
float mLocalRotation[3];
|
float mLocalRotation[3];
|
||||||
|
|
||||||
void load (ESMReader &esm);
|
void load (ESMReader &esm);
|
||||||
void save (ESMWriter &esm) const;
|
void save (ESMWriter &esm, bool inInventory = false) const;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue