mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-05-06 19:01:21 +03:00
Make deleted flag a parameter of load/save methods (instead of a record member) in ESM records
(cherry picked from commit 4a16eba716
)
Conflicts:
components/esm/loadland.cpp
components/esm/loadland.hpp
This commit is contained in:
parent
7013ba751c
commit
82363bf318
90 changed files with 715 additions and 1051 deletions
|
@ -8,29 +8,20 @@ namespace ESM
|
|||
{
|
||||
unsigned int Door::sRecordId = REC_DOOR;
|
||||
|
||||
Door::Door()
|
||||
: mIsDeleted(false)
|
||||
{}
|
||||
|
||||
void Door::load(ESMReader &esm)
|
||||
void Door::load(ESMReader &esm, bool &isDeleted)
|
||||
{
|
||||
mIsDeleted = false;
|
||||
isDeleted = false;
|
||||
|
||||
bool hasName = false;
|
||||
while (esm.hasMoreSubs())
|
||||
{
|
||||
esm.getSubName();
|
||||
uint32_t name = esm.retSubName().val;
|
||||
switch (name)
|
||||
switch (esm.retSubName().val)
|
||||
{
|
||||
case ESM::FourCC<'N','A','M','E'>::value:
|
||||
mId = esm.getHString();
|
||||
hasName = true;
|
||||
break;
|
||||
case ESM::FourCC<'D','E','L','E'>::value:
|
||||
esm.skipHSub();
|
||||
mIsDeleted = true;
|
||||
break;
|
||||
case ESM::FourCC<'M','O','D','L'>::value:
|
||||
mModel = esm.getHString();
|
||||
break;
|
||||
|
@ -46,6 +37,10 @@ namespace ESM
|
|||
case ESM::FourCC<'A','N','A','M'>::value:
|
||||
mCloseSound = esm.getHString();
|
||||
break;
|
||||
case ESM::FourCC<'D','E','L','E'>::value:
|
||||
esm.skipHSub();
|
||||
isDeleted = true;
|
||||
break;
|
||||
default:
|
||||
esm.fail("Unknown subrecord");
|
||||
break;
|
||||
|
@ -56,11 +51,11 @@ namespace ESM
|
|||
esm.fail("Missing NAME subrecord");
|
||||
}
|
||||
|
||||
void Door::save(ESMWriter &esm) const
|
||||
void Door::save(ESMWriter &esm, bool isDeleted) const
|
||||
{
|
||||
esm.writeHNCString("NAME", mId);
|
||||
|
||||
if (mIsDeleted)
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
return;
|
||||
|
@ -80,6 +75,5 @@ namespace ESM
|
|||
mScript.clear();
|
||||
mOpenSound.clear();
|
||||
mCloseSound.clear();
|
||||
mIsDeleted = false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue