From 6eabbaa751c24c447668576c42331318d7a0c880 Mon Sep 17 00:00:00 2001 From: SamuXarick <43006711+SamuXarick@users.noreply.github.com> Date: Sun, 12 Feb 2023 14:29:18 +0000 Subject: [PATCH] Fix #10469, 5e14a20: [Script] League Table rating element is a int64 everywhere else --- src/league_base.h | 2 +- src/saveload/league_sl.cpp | 15 ++++++++------- src/saveload/saveload.h | 3 +-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/league_base.h b/src/league_base.h index 8a70db4ca2..6195d2c3ee 100644 --- a/src/league_base.h +++ b/src/league_base.h @@ -30,7 +30,7 @@ extern LeagueTablePool _league_table_pool; **/ struct LeagueTableElement : LeagueTableElementPool::PoolItem<&_league_table_element_pool> { LeagueTableID table; ///< Id of the table which this element belongs to - uint64 rating; ///< Value that determines ordering of elements in the table (higher=better) + int64 rating; ///< Value that determines ordering of elements in the table (higher=better) CompanyID company; ///< Company Id to show the color blob for or INVALID_COMPANY std::string text; ///< Text of the element std::string score; ///< String representation of the score associated with the element diff --git a/src/saveload/league_sl.cpp b/src/saveload/league_sl.cpp index 122d7ccee5..9945b6c298 100644 --- a/src/saveload/league_sl.cpp +++ b/src/saveload/league_sl.cpp @@ -16,13 +16,14 @@ #include "../safeguards.h" static const SaveLoad _league_table_elements_desc[] = { - SLE_VAR(LeagueTableElement, table, SLE_UINT8), - SLE_VAR(LeagueTableElement, rating, SLE_UINT64), - SLE_VAR(LeagueTableElement, company, SLE_UINT8), - SLE_SSTR(LeagueTableElement, text, SLE_STR | SLF_ALLOW_CONTROL), - SLE_SSTR(LeagueTableElement, score, SLE_STR | SLF_ALLOW_CONTROL), - SLE_VAR(LeagueTableElement, link.type, SLE_UINT8), - SLE_VAR(LeagueTableElement, link.target, SLE_UINT32), + SLE_VAR(LeagueTableElement, table, SLE_UINT8), + SLE_CONDVAR(LeagueTableElement, rating, SLE_FILE_U64 | SLE_VAR_I64, SL_MIN_VERSION, SLV_LINKGRAPH_EDGES), + SLE_CONDVAR(LeagueTableElement, rating, SLE_INT64, SLV_LINKGRAPH_EDGES, SL_MAX_VERSION), + SLE_VAR(LeagueTableElement, company, SLE_UINT8), + SLE_SSTR(LeagueTableElement, text, SLE_STR | SLF_ALLOW_CONTROL), + SLE_SSTR(LeagueTableElement, score, SLE_STR | SLF_ALLOW_CONTROL), + SLE_VAR(LeagueTableElement, link.type, SLE_UINT8), + SLE_VAR(LeagueTableElement, link.target, SLE_UINT32), }; struct LEAEChunkHandler : ChunkHandler { diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 8e51962561..61d4047b15 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -344,8 +344,7 @@ enum SaveLoadVersion : uint16 { SLV_LAST_LOADING_TICK, ///< 301 PR#9693 Store tick of last loading for vehicles. SLV_MULTITRACK_LEVEL_CROSSINGS, ///< 302 PR#9931 v13.0 Multi-track level crossings. SLV_NEWGRF_ROAD_STOPS, ///< 303 PR#10144 NewGRF road stops. - - SLV_LINKGRAPH_EDGES, ///< 303 PR#10314 Explicitly store link graph edges destination. + SLV_LINKGRAPH_EDGES, ///< 304 PR#10314 Explicitly store link graph edges destination, PR#10471 int64 instead of uint64 league rating SL_MAX_VERSION, ///< Highest possible saveload version };