mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 00:02:55 +00:00
chore: only dump leaderboard values for t6 when they are relevant for the column
This commit is contained in:
parent
4fe852b162
commit
2a1ec18f6a
@ -1946,7 +1946,8 @@ namespace T6
|
||||
LBUPDATE_TYPE_NORMAL = 0x0,
|
||||
LBUPDATE_TYPE_RANK = 0x1,
|
||||
LBUPDATE_TYPE_COMBINE = 0x2,
|
||||
LBUPDATE_TYPE_COUNT = 0x3,
|
||||
|
||||
LBUPDATE_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum LbTrackType
|
||||
@ -1959,6 +1960,7 @@ namespace T6
|
||||
TRK_PRESTIGE_MONTHLY = 0x5,
|
||||
TRK_DAILY = 0x6,
|
||||
TRK_PRESTIGE_DAILY = 0x7,
|
||||
|
||||
TRK_COUNT
|
||||
};
|
||||
|
||||
|
@ -55,18 +55,19 @@ namespace T6
|
||||
public:
|
||||
std::string name;
|
||||
int colId;
|
||||
int dwColIndex;
|
||||
bool hidden;
|
||||
std::string statName;
|
||||
std::optional<int> dwColIndex;
|
||||
std::optional<bool> hidden;
|
||||
std::optional<std::string> statName;
|
||||
LbColType type;
|
||||
int precision;
|
||||
LbAggType agg;
|
||||
std::string localization;
|
||||
int uiCalColX;
|
||||
int uiCalColY;
|
||||
std::optional<int> precision;
|
||||
LbAggType aggregationFunction;
|
||||
std::optional<std::string> localization;
|
||||
std::optional<int> uiCalColX;
|
||||
std::optional<int> uiCalColY;
|
||||
};
|
||||
|
||||
NLOHMANN_DEFINE_TYPE_EXTENSION(JsonColumnDef, name, colId, dwColIndex, hidden, statName, type, precision, agg, localization, uiCalColX, uiCalColY);
|
||||
NLOHMANN_DEFINE_TYPE_EXTENSION(
|
||||
JsonColumnDef, name, colId, dwColIndex, hidden, statName, type, precision, aggregationFunction, localization, uiCalColX, uiCalColY);
|
||||
|
||||
class JsonLeaderboardDef
|
||||
{
|
||||
|
@ -9,7 +9,6 @@ using namespace T6;
|
||||
|
||||
std::string AssetDumperLeaderboardDef::GetFileNameForAsset(const std::string& assetName)
|
||||
{
|
||||
|
||||
return std::format("leaderboards/{}.json", assetName);
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ namespace
|
||||
{
|
||||
}
|
||||
|
||||
void Dump(const LeaderboardDef* leaderboardDef)
|
||||
void Dump(const LeaderboardDef* leaderboardDef) const
|
||||
{
|
||||
JsonLeaderboardDef jsonLeaderboardDef;
|
||||
CreateJsonLeaderboardDef(jsonLeaderboardDef, *leaderboardDef);
|
||||
@ -37,23 +37,42 @@ namespace
|
||||
{
|
||||
jColumnDef.name = lbColumnDef.name;
|
||||
jColumnDef.colId = lbColumnDef.colId;
|
||||
|
||||
if (lbColumnDef.dwColIndex >= 0)
|
||||
jColumnDef.dwColIndex = lbColumnDef.dwColIndex;
|
||||
|
||||
if (lbColumnDef.hidden)
|
||||
jColumnDef.hidden = lbColumnDef.hidden;
|
||||
|
||||
if (lbColumnDef.statName && lbColumnDef.statName[0])
|
||||
jColumnDef.statName = lbColumnDef.statName;
|
||||
|
||||
jColumnDef.type = lbColumnDef.type;
|
||||
|
||||
if (lbColumnDef.precision != 0)
|
||||
jColumnDef.precision = lbColumnDef.precision;
|
||||
jColumnDef.agg = lbColumnDef.agg;
|
||||
|
||||
jColumnDef.aggregationFunction = lbColumnDef.agg;
|
||||
|
||||
if (lbColumnDef.localization && lbColumnDef.localization[0])
|
||||
jColumnDef.localization = lbColumnDef.localization;
|
||||
|
||||
if (lbColumnDef.uiCalColX != 0 || lbColumnDef.uiCalColY != 0)
|
||||
{
|
||||
jColumnDef.uiCalColX = lbColumnDef.uiCalColX;
|
||||
jColumnDef.uiCalColY = lbColumnDef.uiCalColY;
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateJsonLeaderboardDef(JsonLeaderboardDef& jLeaderboardDef, const LeaderboardDef& leaderboardDef)
|
||||
{
|
||||
jLeaderboardDef.id = leaderboardDef.id;
|
||||
jLeaderboardDef.dwColumnCount = leaderboardDef.dwColumnCount;
|
||||
jLeaderboardDef.xpColId = (leaderboardDef.xpColId < 0) ? std::nullopt : std::make_optional(leaderboardDef.xpColId);
|
||||
jLeaderboardDef.prestigeColId = (leaderboardDef.prestigeColId < 0) ? std::nullopt : std::make_optional(leaderboardDef.prestigeColId);
|
||||
|
||||
if (leaderboardDef.xpColId >= 0)
|
||||
jLeaderboardDef.xpColId = leaderboardDef.xpColId;
|
||||
if (leaderboardDef.prestigeColId >= 0)
|
||||
jLeaderboardDef.prestigeColId = leaderboardDef.prestigeColId;
|
||||
|
||||
jLeaderboardDef.columns.resize(leaderboardDef.columnCount);
|
||||
for (auto i = 0; i < leaderboardDef.columnCount; ++i)
|
||||
@ -61,14 +80,14 @@ namespace
|
||||
|
||||
jLeaderboardDef.updateType = leaderboardDef.updateType;
|
||||
|
||||
for (auto i = 0; i < LbTrackType::TRK_COUNT; ++i)
|
||||
{
|
||||
if ((leaderboardDef.trackTypes & (1 << i)) != 0)
|
||||
for (auto i = 0; i < TRK_COUNT; ++i)
|
||||
{
|
||||
const auto trackTypeMask = 1 << i;
|
||||
|
||||
if (leaderboardDef.trackTypes & trackTypeMask)
|
||||
jLeaderboardDef.trackTypes.emplace_back(static_cast<LbTrackType>(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::ostream& m_stream;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user