Merge branch 'dont_look_at_me_im_hideous' into 'master'

Ignored flag part 2

Closes #6699

See merge request OpenMW/openmw!1782
pull/3226/head
psi29a 3 years ago
commit a0d0f60490

@ -15,6 +15,7 @@
#include <components/esm/records.hpp>
#include "record.hpp"
#include "labels.hpp"
#define ESMTOOL_VERSION 1.2
@ -398,7 +399,8 @@ int load(Arguments& info)
if(!quiet && interested)
{
std::cout << "\nRecord: " << n.toStringView() << " '" << record->getId() << "'\n";
std::cout << "\nRecord: " << n.toStringView() << " '" << record->getId() << "'\n"
<< "Record flags: " << recordFlags(record->getFlags()) << '\n';
record->print();
}

@ -902,3 +902,17 @@ std::string weaponFlags(int flags)
properties += Misc::StringUtils::format("(0x%08X)", flags);
return properties;
}
std::string recordFlags(uint32_t flags)
{
std::string properties;
if (flags == 0) properties += "[None] ";
if (flags & ESM::FLAG_Deleted) properties += "Deleted ";
if (flags & ESM::FLAG_Persistent) properties += "Persistent ";
if (flags & ESM::FLAG_Ignored) properties += "Ignored ";
if (flags & ESM::FLAG_Blocked) properties += "Blocked ";
int unused = ~(ESM::FLAG_Deleted | ESM::FLAG_Persistent | ESM::FLAG_Ignored | ESM::FLAG_Blocked);
if (flags & unused) properties += "Invalid ";
properties += Misc::StringUtils::format("(0x%08X)", flags);
return properties;
}

@ -60,6 +60,8 @@ std::string raceFlags(int flags);
std::string spellFlags(int flags);
std::string weaponFlags(int flags);
std::string recordFlags(uint32_t flags);
// Missing flags functions:
// aiServicesFlags, possibly more

@ -196,6 +196,11 @@ namespace EsmLoader
{
const ESM::NAME recName = reader.getRecName();
reader.getRecHeader();
if (reader.getRecordFlags() & ESM::FLAG_Ignored)
{
reader.skipRecord();
continue;
}
loadRecord(query, recName, reader, content);
}
}

Loading…
Cancel
Save