Add MapEnts dumper for IW3

This commit is contained in:
Jan 2021-04-28 15:28:49 +02:00
parent 12ac569bfa
commit 8ca0eef429
3 changed files with 42 additions and 1 deletions

View File

@ -0,0 +1,24 @@
#include "AssetDumperMapEnts.h"
using namespace IW3;
bool AssetDumperMapEnts::ShouldDump(XAssetInfo<MapEnts>* asset)
{
return true;
}
bool AssetDumperMapEnts::CanDumpAsRaw()
{
return true;
}
std::string AssetDumperMapEnts::GetFileNameForAsset(Zone* zone, XAssetInfo<MapEnts>* asset)
{
return asset->m_name + ".ents";
}
void AssetDumperMapEnts::DumpRaw(AssetDumpingContext& context, XAssetInfo<MapEnts>* asset, std::ostream& stream)
{
const auto* mapEnts = asset->Asset();
stream.write(mapEnts->entityString, mapEnts->numEntityChars);
}

View File

@ -0,0 +1,16 @@
#pragma once
#include "Dumping/AbstractAssetDumper.h"
#include "Game/IW3/IW3.h"
namespace IW3
{
class AssetDumperMapEnts final : public AbstractAssetDumper<MapEnts>
{
protected:
bool ShouldDump(XAssetInfo<MapEnts>* asset) override;
bool CanDumpAsRaw() override;
std::string GetFileNameForAsset(Zone* zone, XAssetInfo<MapEnts>* asset) override;
void DumpRaw(AssetDumpingContext& context, XAssetInfo<MapEnts>* asset, std::ostream& stream) override;
};
}

View File

@ -6,6 +6,7 @@
#include "AssetDumpers/AssetDumperGfxImage.h"
#include "AssetDumpers/AssetDumperLoadedSound.h"
#include "AssetDumpers/AssetDumperLocalizeEntry.h"
#include "AssetDumpers/AssetDumperMapEnts.h"
#include "AssetDumpers/AssetDumperRawFile.h"
#include "AssetDumpers/AssetDumperStringTable.h"
#include "AssetDumpers/AssetDumperWeapon.h"
@ -41,7 +42,7 @@ bool ZoneDumper::DumpZone(AssetDumpingContext& context) const
// DUMP_ASSET_POOL(AssetDumperComWorld, m_com_world)
// DUMP_ASSET_POOL(AssetDumperGameWorldSp, m_game_world_sp)
// DUMP_ASSET_POOL(AssetDumperGameWorldMp, m_game_world_mp)
// DUMP_ASSET_POOL(AssetDumperMapEnts, m_map_ents)
DUMP_ASSET_POOL(AssetDumperMapEnts, m_map_ents)
// DUMP_ASSET_POOL(AssetDumperGfxWorld, m_gfx_world)
// DUMP_ASSET_POOL(AssetDumperGfxLightDef, m_gfx_light_def)
// DUMP_ASSET_POOL(AssetDumperFont_s, m_font)