diff --git a/src/saveload/bridge_signal_sl.cpp b/src/saveload/bridge_signal_sl.cpp index 596194d2f3..4c73478527 100644 --- a/src/saveload/bridge_signal_sl.cpp +++ b/src/saveload/bridge_signal_sl.cpp @@ -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(&(lbss->signal_red_bits[0])), stub.length, SLE_UINT64); + SlArray(const_cast(lbss->signal_red_bits.data()), stub.length, SLE_UINT64); } static void Save_XBSS() diff --git a/src/saveload/plans_sl.cpp b/src/saveload/plans_sl.cpp index a7e33d90fb..94c2e80b8d 100644 --- a/src/saveload/plans_sl.cpp +++ b/src/saveload/plans_sl.cpp @@ -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(); } diff --git a/src/saveload/tracerestrict_sl.cpp b/src/saveload/tracerestrict_sl.cpp index e8fcaee444..53f9eb23f2 100644 --- a/src/saveload/tracerestrict_sl.cpp +++ b/src/saveload/tracerestrict_sl.cpp @@ -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); } /**