Merge branch 'jgrpp' into jgrpp-beta
# Conflicts: # src/settings.cpp # src/settings_gui.cpp # src/settings_internal.h # src/table/company_settings.ini # src/table/currency_settings.ini # src/table/gameopt_settings.ini # src/table/misc_settings.ini # src/table/settings.h.preamble # src/table/settings.ini # src/table/win32_settings.ini # src/table/window_settings.ini
This commit is contained in:
@@ -67,6 +67,7 @@
|
||||
#include "../animated_tile.h"
|
||||
#include "../company_func.h"
|
||||
#include "../infrastructure_func.h"
|
||||
#include "../event_logs.h"
|
||||
|
||||
|
||||
#include "saveload_internal.h"
|
||||
@@ -443,9 +444,11 @@ static void CDECL HandleSavegameLoadCrash(int signum)
|
||||
for (const GRFConfig *c = _grfconfig; c != nullptr; c = c->next) {
|
||||
if (HasBit(c->flags, GCF_COMPATIBLE)) {
|
||||
const GRFIdentifier *replaced = GetOverriddenIdentifier(c);
|
||||
char buf[40];
|
||||
md5sumToString(buf, lastof(buf), replaced->md5sum);
|
||||
p += seprintf(p, lastof(buffer), "NewGRF %08X (checksum %s) not found.\n Loaded NewGRF \"%s\" with same GRF ID instead.\n", BSWAP32(c->ident.grfid), buf, c->filename);
|
||||
char original_md5[40];
|
||||
char replaced_md5[40];
|
||||
md5sumToString(original_md5, lastof(original_md5), c->original_md5sum);
|
||||
md5sumToString(replaced_md5, lastof(replaced_md5), replaced->md5sum);
|
||||
p += seprintf(p, lastof(buffer), "NewGRF %08X (checksum %s) not found.\n Loaded NewGRF \"%s\" (checksum %s) with same GRF ID instead.\n", BSWAP32(c->ident.grfid), original_md5, c->filename, replaced_md5);
|
||||
}
|
||||
if (c->status == GCS_NOT_FOUND) {
|
||||
char buf[40];
|
||||
@@ -1719,7 +1722,7 @@ bool AfterLoadGame()
|
||||
c->avail_roadtypes = GetCompanyRoadTypes(c->index);
|
||||
}
|
||||
|
||||
if (!IsSavegameVersionBefore(SLV_27)) AfterLoadStations();
|
||||
AfterLoadStations();
|
||||
|
||||
/* Time starts at 0 instead of 1920.
|
||||
* Account for this in older games by adding an offset */
|
||||
@@ -3743,7 +3746,7 @@ bool AfterLoadGame()
|
||||
}
|
||||
}
|
||||
|
||||
if (IsSavegameVersionUntil(SLV_ENDING_YEAR) || !SlXvIsFeaturePresent(XSLFI_MULTIPLE_DOCKS, 2) || !SlXvIsFeaturePresent(XSLFI_DOCKING_CACHE_VER, 1)) {
|
||||
if (IsSavegameVersionUntil(SLV_ENDING_YEAR) || !SlXvIsFeaturePresent(XSLFI_MULTIPLE_DOCKS, 2) || !SlXvIsFeaturePresent(XSLFI_DOCKING_CACHE_VER, 2)) {
|
||||
/* Update station docking tiles. Was only needed for pre-SLV_MULTITLE_DOCKS
|
||||
* savegames, but a bug in docking tiles touched all savegames between
|
||||
* SLV_MULTITILE_DOCKS and SLV_ENDING_YEAR. */
|
||||
@@ -4030,6 +4033,7 @@ bool AfterLoadGame()
|
||||
void ReloadNewGRFData()
|
||||
{
|
||||
RegisterGameEvents(GEF_RELOAD_NEWGRF);
|
||||
AppendSpecialEventsLogEntry("NewGRF reload");
|
||||
|
||||
RailTypeLabel rail_type_label_map[RAILTYPE_END];
|
||||
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
|
||||
|
||||
@@ -30,7 +30,7 @@ static void Load_XBSS()
|
||||
LongBridgeSignalStorage &lbss = _long_bridge_signal_sim_map[index];
|
||||
SlObject(&stub, _long_bridge_signal_storage_stub_desc);
|
||||
lbss.signal_red_bits.resize(stub.length);
|
||||
SlArray(&(lbss.signal_red_bits[0]), stub.length, SLE_UINT64);
|
||||
SlArray(lbss.signal_red_bits.data(), stub.length, SLE_UINT64);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ static void RealSave_XBSS(const LongBridgeSignalStorage *lbss)
|
||||
LongBridgeSignalStorageStub stub;
|
||||
stub.length = (uint32)lbss->signal_red_bits.size();
|
||||
SlObject(&stub, _long_bridge_signal_storage_stub_desc);
|
||||
SlArray(const_cast<uint64*>(&(lbss->signal_red_bits[0])), stub.length, SLE_UINT64);
|
||||
SlArray(const_cast<uint64*>(lbss->signal_red_bits.data()), stub.length, SLE_UINT64);
|
||||
}
|
||||
|
||||
static void Save_XBSS()
|
||||
|
||||
@@ -131,7 +131,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
|
||||
{ XSLFI_FLOW_STAT_FLAGS, XSCF_NULL, 1, 1, "flow_stat_flags", nullptr, nullptr, nullptr },
|
||||
{ XSLFI_SPEED_RESTRICTION, XSCF_NULL, 1, 1, "speed_restriction", nullptr, nullptr, "VESR" },
|
||||
{ XSLFI_STATION_GOODS_EXTRA, XSCF_NULL, 1, 1, "station_goods_extra", nullptr, nullptr, nullptr },
|
||||
{ XSLFI_DOCKING_CACHE_VER, XSCF_IGNORABLE_ALL, 1, 1, "docking_cache_ver", nullptr, nullptr, nullptr },
|
||||
{ XSLFI_DOCKING_CACHE_VER, XSCF_IGNORABLE_ALL, 2, 2, "docking_cache_ver", nullptr, nullptr, nullptr },
|
||||
{ XSLFI_EXTRA_CHEATS, XSCF_NULL, 1, 1, "extra_cheats", nullptr, nullptr, "CHTX" },
|
||||
{ XSLFI_TOWN_MULTI_BUILDING, XSCF_NULL, 1, 1, "town_multi_building", nullptr, nullptr, nullptr },
|
||||
{ XSLFI_SHIP_LOST_COUNTER, XSCF_NULL, 1, 1, "ship_lost_counter", nullptr, nullptr, nullptr },
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "../fios.h"
|
||||
#include "../road_type.h"
|
||||
#include "../core/checksum_func.hpp"
|
||||
#include "../event_logs.h"
|
||||
|
||||
#include "saveload.h"
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ static void RealSave_PLAN(Plan *p)
|
||||
for (size_t i = 0; i < p->lines.size(); i++) {
|
||||
PlanLine *pl = p->lines[i];
|
||||
SlWriteUint32((uint32)pl->tiles.size());
|
||||
SlArray(&pl->tiles[0], pl->tiles.size(), SLE_UINT32);
|
||||
SlArray(pl->tiles.data(), pl->tiles.size(), SLE_UINT32);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ static void Load_PLAN()
|
||||
p->lines[i] = pl;
|
||||
const size_t tile_count = SlReadUint32();
|
||||
pl->tiles.resize(tile_count);
|
||||
SlArray(&pl->tiles[0], tile_count, SLE_UINT32);
|
||||
SlArray(pl->tiles.data(), tile_count, SLE_UINT32);
|
||||
pl->UpdateVisualExtents();
|
||||
}
|
||||
p->SetVisibility(false);
|
||||
@@ -80,7 +80,7 @@ static void Load_PLANLINE()
|
||||
p->lines[line_index] = pl;
|
||||
size_t plsz = SlGetFieldLength() / sizeof(TileIndex);
|
||||
pl->tiles.resize(plsz);
|
||||
SlArray(&pl->tiles[0], plsz, SLE_UINT32);
|
||||
SlArray(pl->tiles.data(), plsz, SLE_UINT32);
|
||||
pl->UpdateVisualExtents();
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ static void Load_TRRP()
|
||||
TraceRestrictProgram *prog = new (index) TraceRestrictProgram();
|
||||
SlObject(&stub, _trace_restrict_program_stub_desc);
|
||||
prog->items.resize(stub.length);
|
||||
SlArray(&(prog->items[0]), stub.length, SLE_UINT32);
|
||||
if (stub.length > 0) SlArray(prog->items.data(), stub.length, SLE_UINT32);
|
||||
if (SlXvIsFeaturePresent(XSLFI_JOKERPP)) {
|
||||
for (size_t i = 0; i < prog->items.size(); i++) {
|
||||
TraceRestrictItem &item = prog->items[i]; // note this is a reference,
|
||||
@@ -99,7 +99,7 @@ static void RealSave_TRRP(TraceRestrictProgram *prog)
|
||||
TraceRestrictProgramStub stub;
|
||||
stub.length = (uint32)prog->items.size();
|
||||
SlObject(&stub, _trace_restrict_program_stub_desc);
|
||||
SlArray(&(prog->items[0]), stub.length, SLE_UINT32);
|
||||
SlArray(prog->items.data(), stub.length, SLE_UINT32);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,7 +142,7 @@ static void Load_TRRS()
|
||||
SlObject(slot, _trace_restrict_slot_desc);
|
||||
SlObject(&stub, _trace_restrict_slot_stub_desc);
|
||||
slot->occupants.resize(stub.length);
|
||||
if (stub.length) SlArray(&(slot->occupants[0]), stub.length, SLE_UINT32);
|
||||
if (stub.length) SlArray(slot->occupants.data(), stub.length, SLE_UINT32);
|
||||
}
|
||||
TraceRestrictSlot::RebuildVehicleIndex();
|
||||
}
|
||||
@@ -156,7 +156,7 @@ static void RealSave_TRRS(TraceRestrictSlot *slot)
|
||||
TraceRestrictSlotStub stub;
|
||||
stub.length = (uint32)slot->occupants.size();
|
||||
SlObject(&stub, _trace_restrict_slot_stub_desc);
|
||||
if (stub.length) SlArray(&(slot->occupants[0]), stub.length, SLE_UINT32);
|
||||
if (stub.length) SlArray(slot->occupants.data(), stub.length, SLE_UINT32);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user