From 040f945009a4e363c5d190629a528d255851f66b Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 20 Jan 2022 22:20:30 +0100 Subject: [PATCH] Dump structured data def reserved count --- .../StructuredDataDef/StructuredDataDefDumper.cpp | 10 ++++++++-- .../StructuredDataDef/StructuredDataDefDumper.h | 2 +- .../AssetDumpers/AssetDumperStructuredDataDefSet.cpp | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.cpp b/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.cpp index e2719e65..3b055b09 100644 --- a/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.cpp +++ b/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.cpp @@ -53,7 +53,7 @@ void StructuredDataDefDumper::EndVersion() m_flags.m_empty_line_before_block = false; } -void StructuredDataDefDumper::BeginEnum(const std::string& enumName, const size_t enumEntryCount) +void StructuredDataDefDumper::BeginEnum(const std::string& enumName, const size_t enumEntryCount, size_t enumReservedEntryCount) { assert(m_flags.m_in_version); assert(m_block == Block::BLOCK_NONE); @@ -65,7 +65,13 @@ void StructuredDataDefDumper::BeginEnum(const std::string& enumName, const size_ m_stream << "\n"; Indent(); - m_stream << "enum " << enumName << "\n"; + if (enumReservedEntryCount != enumEntryCount) + m_stream << "enum(" << enumReservedEntryCount << ") "; + else + m_stream << "enum "; + m_stream << enumName; + + m_stream << "\n"; Indent(); m_stream << "{\n"; diff --git a/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.h b/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.h index b13fa1a2..dc76bffd 100644 --- a/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.h +++ b/src/ObjWriting/Dumping/StructuredDataDef/StructuredDataDefDumper.h @@ -45,7 +45,7 @@ public: void BeginVersion(int version); void EndVersion(); - void BeginEnum(const std::string& enumName, size_t enumEntryCount); + void BeginEnum(const std::string& enumName, size_t enumEntryCount, size_t enumReservedEntryCount); void EndEnum(); void WriteEnumEntry(const std::string& entryName, size_t entryValue); diff --git a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStructuredDataDefSet.cpp b/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStructuredDataDefSet.cpp index 58b48dd2..b85a2501 100644 --- a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStructuredDataDefSet.cpp +++ b/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStructuredDataDefSet.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "Dumping/StructuredDataDef/StructuredDataDefDumper.h" @@ -115,7 +116,7 @@ void AssetDumperStructuredDataDefSet::DumpEnum(StructuredDataDefDumper& dumper, std::ostringstream ss; ss << "ENUM_" << enumIndex; - dumper.BeginEnum(ss.str(), static_cast(_enum->entryCount)); + dumper.BeginEnum(ss.str(), static_cast(_enum->entryCount), static_cast(_enum->reservedEntryCount)); for (auto i = 0; i < _enum->entryCount; i++) {