1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#pragma once
#include "../../Main.h"
#include "AnimSetMapping.h"
#include "JJ2Version.h"
#include <Containers/SmallVector.h>
#include <Containers/String.h>
#include <Containers/StringView.h>
#include <IO/PakFile.h>
using namespace Death::Containers;
using namespace Death::IO;
namespace Jazz2::Compatibility
{
/** @brief Parses original `.j2d` data files */
class JJ2Data
{
public:
/** @brief Item from a `.j2d` data file */
struct Item {
String Filename;
std::unique_ptr<uint8_t[]> Blob;
std::uint32_t Type;
std::int32_t Size;
};
SmallVector<Item, 0> Items;
JJ2Data() {}
bool Open(StringView path, bool strictParser);
void Extract(StringView targetPath);
void Convert(PakWriter& pakWriter, JJ2Version version);
private:
void ConvertSfxList(const Item& item, PakWriter& pakWriter, StringView targetPath, AnimSetMapping& animMapping);
void ConvertMenuImage(const Item& item, PakWriter& pakWriter, StringView targetPath, std::int32_t width, std::int32_t height);
};
}
|