Dump a few iw4 assets

This commit is contained in:
Jan
2020-09-09 18:40:01 +02:00
parent 4aafbac113
commit 14666ed944
32 changed files with 734 additions and 220 deletions

View File

@ -0,0 +1,47 @@
#include "AssetDumperGfxImage.h"
#include <cassert>
#include "ObjWriting.h"
#include "Image/IwiWriter27.h"
#include "Image/DdsWriter.h"
using namespace IW4;
AssetDumperGfxImage::AssetDumperGfxImage()
{
switch (ObjWriting::Configuration.ImageOutputFormat)
{
case ObjWriting::Configuration_t::ImageOutputFormat_e::DDS:
m_writer = new DdsWriter();
break;
case ObjWriting::Configuration_t::ImageOutputFormat_e::IWI:
m_writer = new IwiWriter27();
break;
default:
assert(false);
m_writer = nullptr;
break;
}
}
AssetDumperGfxImage::~AssetDumperGfxImage()
{
delete m_writer;
m_writer = nullptr;
}
bool AssetDumperGfxImage::ShouldDump(GfxImage* asset)
{
return asset->cardMemory.platform[0] > 0;
}
std::string AssetDumperGfxImage::GetFileNameForAsset(Zone* zone, GfxImage* asset)
{
return "images/" + std::string(asset->name) + m_writer->GetFileExtension();
}
void AssetDumperGfxImage::DumpAsset(Zone* zone, GfxImage* asset, FileAPI::File* out)
{
m_writer->DumpImage(out, asset->texture.texture);
}