2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-09-08 01:37:25 +00:00

feat: dump leaderboard definitions on IW4/IW5

This commit is contained in:
2024-05-19 08:55:06 +02:00
parent 4139253aac
commit 7ba5a616cd
14 changed files with 423 additions and 4 deletions

View File

@@ -0,0 +1,29 @@
#include "AssetDumperLeaderboardDef.h"
#include "Game/IW4/LeaderboardDef/JsonLeaderboardDefWriter.h"
#include <format>
#include <ranges>
using namespace IW4;
std::string AssetDumperLeaderboardDef::GetFileNameForAsset(const std::string& assetName)
{
return std::format("leaderboards/{}.json", assetName);
}
bool AssetDumperLeaderboardDef::ShouldDump(XAssetInfo<LeaderboardDef>* asset)
{
return true;
}
void AssetDumperLeaderboardDef::DumpAsset(AssetDumpingContext& context, XAssetInfo<LeaderboardDef>* asset)
{
const auto assetFile = context.OpenAssetFile(GetFileNameForAsset(asset->m_name));
if (!assetFile)
return;
DumpLeaderboardDefAsJson(*assetFile, asset->Asset());
}

View File

@@ -0,0 +1,16 @@
#pragma once
#include "Dumping/AbstractAssetDumper.h"
#include "Game/IW4/IW4.h"
namespace IW4
{
class AssetDumperLeaderboardDef final : public AbstractAssetDumper<LeaderboardDef>
{
static std::string GetFileNameForAsset(const std::string& assetName);
protected:
_NODISCARD bool ShouldDump(XAssetInfo<LeaderboardDef>* asset) override;
void DumpAsset(AssetDumpingContext& context, XAssetInfo<LeaderboardDef>* asset) override;
};
} // namespace IW4