Merge branch 'master' into jgrpp

# Conflicts:
#	src/base_station_base.h
#	src/newgrf_roadstop.cpp
#	src/newgrf_station.cpp
#	src/object_gui.cpp
#	src/saveload/settings_sl.cpp
#	src/saveload/station_sl.cpp
#	src/settings.cpp
#	src/settings_internal.h
#	src/timer/timer_game_calendar.cpp
This commit is contained in:
Jonathan G Rennison
2024-03-09 20:10:57 +00:00
19 changed files with 901 additions and 548 deletions

View File

@@ -281,7 +281,7 @@ uint32_t StationScopeResolver::GetNearbyStationInfo(uint32_t parameter, StationS
uint16_t localidx = 0;
if (IsCustomStationSpecIndex(nearby_tile)) {
const StationSpecList ssl = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
const StationSpecList &ssl = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
localidx = ssl.localidx;
res |= 1 << (ssl.grfid != grfid ? 9 : 8);
}
@@ -399,8 +399,8 @@ uint32_t StationScopeResolver::GetNearbyStationInfo(uint32_t parameter, StationS
if (!HasStationTileRail(nearby_tile)) return 0xFFFFFFFF;
if (!IsCustomStationSpecIndex(nearby_tile)) return 0;
const StationSpecList ssl = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
return ssl.grfid;
const StationSpecList &sm = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
return sm.grfid;
}
case 0x6B: { // 16 bit Station ID of nearby tiles
@@ -411,9 +411,9 @@ uint32_t StationScopeResolver::GetNearbyStationInfo(uint32_t parameter, StationS
uint32_t grfid = this->st->speclist[GetCustomStationSpecIndex(this->tile)].grfid;
const StationSpecList ssl = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
if (ssl.grfid == grfid) {
return ssl.localidx;
const StationSpecList &sm = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
if (sm.grfid == grfid) {
return sm.localidx;
}
return 0xFFFE;
@@ -1039,12 +1039,10 @@ void StationUpdateCachedTriggers(BaseStation *st)
/* Combine animation trigger bitmask for all station specs
* of this station. */
for (uint i = 0; i < st->speclist.size(); i++) {
const StationSpec *ss = st->speclist[i].spec;
if (ss != nullptr) {
st->cached_anim_triggers |= ss->animation.triggers;
st->cached_cargo_triggers |= ss->cargo_triggers;
}
for (const auto &sm : GetStationSpecList<StationSpec>(st)) {
if (sm.spec == nullptr) continue;
st->cached_anim_triggers |= sm.spec->animation.triggers;
st->cached_cargo_triggers |= sm.spec->cargo_triggers;
}
}