1
0
Fork 0

Codechange: do not implicitly convert during assignment to StrongType

pull/13227/head
Rubidium 2025-01-01 18:50:57 +01:00 committed by rubidium42
parent 448d6ede4a
commit c0df898ac5
25 changed files with 57 additions and 58 deletions

View File

@ -927,7 +927,7 @@ static bool AircraftController(Aircraft *v)
u->cur_speed = 32; u->cur_speed = 32;
int count = UpdateAircraftSpeed(v); int count = UpdateAircraftSpeed(v);
if (count > 0) { if (count > 0) {
v->tile = 0; v->tile = TileIndex{};
int z_dest; int z_dest;
GetAircraftFlightLevelBounds(v, &z_dest, nullptr); GetAircraftFlightLevelBounds(v, &z_dest, nullptr);
@ -1100,7 +1100,7 @@ static bool AircraftController(Aircraft *v)
v->tile = gp.new_tile; v->tile = gp.new_tile;
/* If vehicle is in the air, use tile coordinate 0. */ /* If vehicle is in the air, use tile coordinate 0. */
if (amd.flag & (AMED_TAKEOFF | AMED_SLOWTURN | AMED_LAND)) v->tile = 0; if (amd.flag & (AMED_TAKEOFF | AMED_SLOWTURN | AMED_LAND)) v->tile = TileIndex{};
/* Adjust Z for land or takeoff? */ /* Adjust Z for land or takeoff? */
int z = v->z_pos; int z = v->z_pos;

View File

@ -423,7 +423,7 @@ void AddArticulatedParts(Vehicle *first)
v->vehstatus = first->vehstatus & ~VS_STOPPED; v->vehstatus = first->vehstatus & ~VS_STOPPED;
v->cargo_subtype = 0; v->cargo_subtype = 0;
v->max_age = 0; v->max_age = CalendarTime::MIN_DATE;
v->engine_type = engine_type; v->engine_type = engine_type;
v->value = 0; v->value = 0;
v->sprite_cache.sprite_seq.Set(SPR_IMG_QUERY); v->sprite_cache.sprite_seq.Set(SPR_IMG_QUERY);

View File

@ -158,7 +158,6 @@ namespace StrongType {
constexpr Typedef &operator =(const Typedef &rhs) { this->value = rhs.value; return *this; } constexpr Typedef &operator =(const Typedef &rhs) { this->value = rhs.value; return *this; }
constexpr Typedef &operator =(Typedef &&rhs) { this->value = std::move(rhs.value); return *this; } constexpr Typedef &operator =(Typedef &&rhs) { this->value = std::move(rhs.value); return *this; }
constexpr Typedef &operator =(const TBaseType &rhs) { this->value = rhs; return *this; }
/* Only allow conversion to BaseType via method. */ /* Only allow conversion to BaseType via method. */
constexpr TBaseType base() const { return this->value; } constexpr TBaseType base() const { return this->value; }

View File

@ -166,7 +166,7 @@ struct SetDateWindow : Window {
break; break;
case WID_SD_YEAR: case WID_SD_YEAR:
this->date.year = index; this->date.year = TimerGameEconomy::Year{index};
break; break;
} }
this->SetDirty(); this->SetDirty();

View File

@ -235,7 +235,7 @@ static bool DisasterTick_Zeppeliner(DisasterVehicle *v)
if (v->state == 1) { if (v->state == 1) {
if (++v->age == 38) { if (++v->age == 38) {
v->state = 2; v->state = 2;
v->age = 0; v->age = CalendarTime::MIN_DATE;
} }
if (GB(v->tick_counter, 0, 3) == 0) CreateEffectVehicleRel(v, 0, -17, 2, EV_CRASH_SMOKE); if (GB(v->tick_counter, 0, 3) == 0) CreateEffectVehicleRel(v, 0, -17, 2, EV_CRASH_SMOKE);
@ -243,7 +243,7 @@ static bool DisasterTick_Zeppeliner(DisasterVehicle *v)
} else if (v->state == 0) { } else if (v->state == 0) {
if (IsValidTile(v->tile) && IsAirportTile(v->tile)) { if (IsValidTile(v->tile) && IsAirportTile(v->tile)) {
v->state = 1; v->state = 1;
v->age = 0; v->age = CalendarTime::MIN_DATE;
SetDParam(0, GetStationIndex(v->tile)); SetDParam(0, GetStationIndex(v->tile));
AddTileNewsItem(STR_NEWS_DISASTER_ZEPPELIN, NT_ACCIDENT, v->tile); AddTileNewsItem(STR_NEWS_DISASTER_ZEPPELIN, NT_ACCIDENT, v->tile);
@ -297,7 +297,7 @@ static bool DisasterTick_Zeppeliner(DisasterVehicle *v)
} }
} else if (v->age == 350) { } else if (v->age == 350) {
v->state = 3; v->state = 3;
v->age = 0; v->age = CalendarTime::MIN_DATE;
} }
if (IsValidTile(v->tile) && IsAirportTile(v->tile)) { if (IsValidTile(v->tile) && IsAirportTile(v->tile)) {
@ -354,8 +354,8 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
return false; return false;
} }
/* Target it. */ /* Target it. */
v->dest_tile = u->index; v->dest_tile = TileIndex{u->index};
v->age = 0; v->age = CalendarTime::MIN_DATE;
u->disaster_vehicle = v->index; u->disaster_vehicle = v->index;
break; break;
} }
@ -460,7 +460,7 @@ static bool DisasterTick_Aircraft(DisasterVehicle *v, uint16_t image_override, b
} else if (v->state == 1) { } else if (v->state == 1) {
if (++v->age == 112) { if (++v->age == 112) {
v->state = 2; v->state = 2;
v->age = 0; v->age = CalendarTime::MIN_DATE;
Industry *i = Industry::Get(v->dest_tile.base()); // Industry destructor calls ReleaseDisastersTargetingIndustry, so this is valid Industry *i = Industry::Get(v->dest_tile.base()); // Industry destructor calls ReleaseDisastersTargetingIndustry, so this is valid
DestructIndustry(i); DestructIndustry(i);
@ -479,11 +479,11 @@ static bool DisasterTick_Aircraft(DisasterVehicle *v, uint16_t image_override, b
if (!IsTileType(tile, MP_INDUSTRY)) return true; if (!IsTileType(tile, MP_INDUSTRY)) return true;
IndustryID ind = GetIndustryIndex(tile); IndustryID ind = GetIndustryIndex(tile);
v->dest_tile = ind; v->dest_tile = TileIndex{ind};
if (GetIndustrySpec(Industry::Get(ind)->type)->behaviour & industry_flag) { if (GetIndustrySpec(Industry::Get(ind)->type)->behaviour & industry_flag) {
v->state = 1; v->state = 1;
v->age = 0; v->age = CalendarTime::MIN_DATE;
} }
} }
@ -611,7 +611,7 @@ static bool DisasterTick_Big_Ufo(DisasterVehicle *v)
if (is_valid_target(t) && (n-- == 0)) { if (is_valid_target(t) && (n-- == 0)) {
/* Target it. */ /* Target it. */
v->dest_tile = t->tile; v->dest_tile = t->tile;
v->age = 0; v->age = CalendarTime::MIN_DATE;
break; break;
} }
} }
@ -991,7 +991,7 @@ void ReleaseDisasterVehicle(VehicleID vehicle)
v->state = 0; v->state = 0;
v->dest_tile = RandomTile(); v->dest_tile = RandomTile();
GetAircraftFlightLevelBounds(v, &v->z_pos, nullptr); GetAircraftFlightLevelBounds(v, &v->z_pos, nullptr);
v->age = 0; v->age = CalendarTime::MIN_DATE;
} }
void DisasterVehicle::UpdateDeltaXY() void DisasterVehicle::UpdateDeltaXY()

View File

@ -572,7 +572,7 @@ EffectVehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicleType type)
v->x_pos = x; v->x_pos = x;
v->y_pos = y; v->y_pos = y;
v->z_pos = z; v->z_pos = z;
v->tile = 0; v->tile = TileIndex{};
v->UpdateDeltaXY(); v->UpdateDeltaXY();
v->vehstatus = VS_UNCLICKABLE; v->vehstatus = VS_UNCLICKABLE;

View File

@ -81,7 +81,7 @@ Engine::Engine(VehicleType type, EngineID base)
/* 'power' defaults to zero, so we also have to default to 'wagon' */ /* 'power' defaults to zero, so we also have to default to 'wagon' */
if (type == VEH_TRAIN) this->u.rail.railveh_type = RAILVEH_WAGON; if (type == VEH_TRAIN) this->u.rail.railveh_type = RAILVEH_WAGON;
/* Set model life to maximum to make wagons available */ /* Set model life to maximum to make wagons available */
this->info.base_life = 0xFF; this->info.base_life = TimerGameCalendar::Year{0xFF};
/* Set road vehicle tractive effort to the default value */ /* Set road vehicle tractive effort to the default value */
if (type == VEH_ROAD) this->u.road.tractive_effort = 0x4C; if (type == VEH_ROAD) this->u.road.tractive_effort = 0x4C;
/* Aircraft must have CT_INVALID as default, as there is no property */ /* Aircraft must have CT_INVALID as default, as there is no property */
@ -116,7 +116,7 @@ Engine::Engine(VehicleType type, EngineID base)
this->info.string_id = STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KIRBY_PAUL_TANK_STEAM + base; this->info.string_id = STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KIRBY_PAUL_TANK_STEAM + base;
/* Set the default model life of original wagons to "infinite" */ /* Set the default model life of original wagons to "infinite" */
if (this->u.rail.railveh_type == RAILVEH_WAGON) this->info.base_life = 0xFF; if (this->u.rail.railveh_type == RAILVEH_WAGON) this->info.base_life = TimerGameCalendar::Year{0xFF};
break; break;
@ -693,7 +693,7 @@ void CalcEngineReliability(Engine *e, bool new_month)
void SetYearEngineAgingStops() void SetYearEngineAgingStops()
{ {
/* Determine last engine aging year, default to 2050 as previously. */ /* Determine last engine aging year, default to 2050 as previously. */
_year_engine_aging_stops = 2050; _year_engine_aging_stops = TimerGameCalendar::Year{2050};
for (const Engine *e : Engine::Iterate()) { for (const Engine *e : Engine::Iterate()) {
const EngineInfo *ei = &e->info; const EngineInfo *ei = &e->info;

View File

@ -53,7 +53,7 @@ void LoadCheckData::Clear()
this->error_msg.clear(); this->error_msg.clear();
this->map_size_x = this->map_size_y = 256; // Default for old savegames which do not store mapsize. this->map_size_x = this->map_size_y = 256; // Default for old savegames which do not store mapsize.
this->current_date = 0; this->current_date = CalendarTime::MIN_DATE;
this->settings = {}; this->settings = {};
companies.clear(); companies.clear();

View File

@ -112,7 +112,7 @@ struct GoalListWindow : public Window {
case GT_TILE: case GT_TILE:
if (!IsValidTile(s->dst)) return; if (!IsValidTile(s->dst)) return;
xy = s->dst; xy = TileIndex{s->dst};
break; break;
case GT_INDUSTRY: case GT_INDUSTRY:

View File

@ -3076,7 +3076,7 @@ static IntervalTimer<TimerGameEconomy> _economy_industries_monthly({TimerGameEco
void InitializeIndustries() void InitializeIndustries()
{ {
Industry::industries = {}; Industry::industries = {};
_industry_sound_tile = 0; _industry_sound_tile = TileIndex{};
_industry_builder.Reset(); _industry_builder.Reset();
} }

View File

@ -800,7 +800,7 @@ void RunTileLoop()
_tile_type_procs[GetTileType(tile)]->tile_loop_proc(tile); _tile_type_procs[GetTileType(tile)]->tile_loop_proc(tile);
/* Get the next tile in sequence using a Galois LFSR. */ /* Get the next tile in sequence using a Galois LFSR. */
tile = (tile.base() >> 1) ^ (-(int32_t)(tile.base() & 1) & feedback); tile = TileIndex{(tile.base() >> 1) ^ (-(int32_t)(tile.base() & 1) & feedback)};
} }
_cur_tileloop_tile = tile; _cur_tileloop_tile = tile;

View File

@ -220,7 +220,7 @@ static void HandleLinkClick(Link link)
case LT_TILE: case LT_TILE:
if (!IsValidTile(link.target)) return; if (!IsValidTile(link.target)) return;
xy = link.target; xy = TileIndex{link.target};
break; break;
case LT_INDUSTRY: case LT_INDUSTRY:

View File

@ -65,7 +65,7 @@ void LinkGraph::ShiftDates(TimerGameEconomy::Date interval)
void LinkGraph::Compress() void LinkGraph::Compress()
{ {
this->last_compression = (TimerGameEconomy::date + this->last_compression).base() / 2; this->last_compression = TimerGameEconomy::Date{(TimerGameEconomy::date + this->last_compression).base() / 2};
for (NodeID node1 = 0; node1 < this->Size(); ++node1) { for (NodeID node1 = 0; node1 < this->Size(); ++node1) {
this->nodes[node1].supply /= 2; this->nodes[node1].supply /= 2;
for (BaseEdge &edge : this->nodes[node1].edges) { for (BaseEdge &edge : this->nodes[node1].edges) {

View File

@ -100,7 +100,7 @@ void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settin
_pause_mode = PM_UNPAUSED; _pause_mode = PM_UNPAUSED;
_game_speed = 100; _game_speed = 100;
TimerGameTick::counter = 0; TimerGameTick::counter = 0;
_cur_tileloop_tile = 1; _cur_tileloop_tile = TileIndex{1};
_thd.redsq = INVALID_TILE; _thd.redsq = INVALID_TILE;
if (reset_settings) MakeNewgameSettingsLive(); if (reset_settings) MakeNewgameSettingsLive();

View File

@ -146,7 +146,7 @@ public:
if constexpr (std::is_enum_v<T>) { if constexpr (std::is_enum_v<T>) {
data = static_cast<T>(this->Read<std::underlying_type_t<T>>()); data = static_cast<T>(this->Read<std::underlying_type_t<T>>());
} else if constexpr (std::is_base_of_v<StrongTypedefBase, T>) { } else if constexpr (std::is_base_of_v<StrongTypedefBase, T>) {
data = this->Read<typename T::BaseType>(); data = T{this->Read<typename T::BaseType>()};
} else { } else {
data = this->Read<T>(); data = this->Read<T>();
} }

View File

@ -347,8 +347,8 @@ void DeserializeNetworkGameInfo(Packet &p, NetworkGameInfo &info, const GameInfo
} }
case 3: case 3:
info.calendar_date = Clamp(p.Recv_uint32(), 0, CalendarTime::MAX_DATE.base()); info.calendar_date = TimerGameCalendar::Date{Clamp(p.Recv_uint32(), 0, CalendarTime::MAX_DATE.base())};
info.calendar_start = Clamp(p.Recv_uint32(), 0, CalendarTime::MAX_DATE.base()); info.calendar_start = TimerGameCalendar::Date{Clamp(p.Recv_uint32(), 0, CalendarTime::MAX_DATE.base())};
[[fallthrough]]; [[fallthrough]];
case 2: case 2:

View File

@ -1026,11 +1026,11 @@ static ChangeInfoResult CommonVehicleChangeInfo(EngineInfo *ei, int prop, ByteRe
break; break;
case 0x03: // Vehicle life case 0x03: // Vehicle life
ei->lifelength = buf.ReadByte(); ei->lifelength = TimerGameCalendar::Year{buf.ReadByte()};
break; break;
case 0x04: // Model life case 0x04: // Model life
ei->base_life = buf.ReadByte(); ei->base_life = TimerGameCalendar::Year{buf.ReadByte()};
break; break;
case 0x06: // Climates available case 0x06: // Climates available
@ -1307,7 +1307,7 @@ static ChangeInfoResult RailVehicleChangeInfo(uint engine, int numinfo, int prop
break; break;
case 0x2A: // Long format introduction date (days since year 0) case 0x2A: // Long format introduction date (days since year 0)
ei->base_intro = buf.ReadDWord(); ei->base_intro = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case PROP_TRAIN_CARGO_AGE_PERIOD: // 0x2B Cargo aging period case PROP_TRAIN_CARGO_AGE_PERIOD: // 0x2B Cargo aging period
@ -1498,7 +1498,7 @@ static ChangeInfoResult RoadVehicleChangeInfo(uint engine, int numinfo, int prop
break; break;
case 0x1F: // Long format introduction date (days since year 0) case 0x1F: // Long format introduction date (days since year 0)
ei->base_intro = buf.ReadDWord(); ei->base_intro = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x20: // Alter purchase list sort order case 0x20: // Alter purchase list sort order
@ -1685,7 +1685,7 @@ static ChangeInfoResult ShipVehicleChangeInfo(uint engine, int numinfo, int prop
break; break;
case 0x1A: // Long format introduction date (days since year 0) case 0x1A: // Long format introduction date (days since year 0)
ei->base_intro = buf.ReadDWord(); ei->base_intro = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x1B: // Alter purchase list sort order case 0x1B: // Alter purchase list sort order
@ -1868,7 +1868,7 @@ static ChangeInfoResult AircraftVehicleChangeInfo(uint engine, int numinfo, int
break; break;
case 0x1A: // Long format introduction date (days since year 0) case 0x1A: // Long format introduction date (days since year 0)
ei->base_intro = buf.ReadDWord(); ei->base_intro = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x1B: // Alter purchase list sort order case 0x1B: // Alter purchase list sort order
@ -2638,11 +2638,11 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, Byt
} }
case 0x21: // long introduction year case 0x21: // long introduction year
housespec->min_year = buf.ReadWord(); housespec->min_year = TimerGameCalendar::Year{buf.ReadWord()};
break; break;
case 0x22: // long maximum year case 0x22: // long maximum year
housespec->max_year = buf.ReadWord(); housespec->max_year = TimerGameCalendar::Year{buf.ReadWord()};
if (housespec->max_year == UINT16_MAX) housespec->max_year = CalendarTime::MAX_YEAR; if (housespec->max_year == UINT16_MAX) housespec->max_year = CalendarTime::MAX_YEAR;
break; break;
@ -4045,8 +4045,8 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, B
} }
case 0x0C: case 0x0C:
as->min_year = buf.ReadWord(); as->min_year = TimerGameCalendar::Year{buf.ReadWord()};
as->max_year = buf.ReadWord(); as->max_year = TimerGameCalendar::Year{buf.ReadWord()};
if (as->max_year == 0xFFFF) as->max_year = CalendarTime::MAX_YEAR; if (as->max_year == 0xFFFF) as->max_year = CalendarTime::MAX_YEAR;
break; break;
@ -4196,11 +4196,11 @@ static ChangeInfoResult ObjectChangeInfo(uint id, int numinfo, int prop, ByteRea
break; break;
case 0x0E: // Introduction date case 0x0E: // Introduction date
spec->introduction_date = buf.ReadDWord(); spec->introduction_date = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x0F: // End of life case 0x0F: // End of life
spec->end_of_life_date = buf.ReadDWord(); spec->end_of_life_date = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x10: // Flags case 0x10: // Flags
@ -4363,7 +4363,7 @@ static ChangeInfoResult RailTypeChangeInfo(uint id, int numinfo, int prop, ByteR
break; break;
case 0x17: // Introduction date case 0x17: // Introduction date
rti->introduction_date = buf.ReadDWord(); rti->introduction_date = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x1A: // Sort order case 0x1A: // Sort order
@ -4570,7 +4570,7 @@ static ChangeInfoResult RoadTypeChangeInfo(uint id, int numinfo, int prop, ByteR
break; break;
case 0x17: // Introduction date case 0x17: // Introduction date
rti->introduction_date = buf.ReadDWord(); rti->introduction_date = TimerGameCalendar::Date(buf.ReadDWord());
break; break;
case 0x1A: // Sort order case 0x1A: // Sort order
@ -9412,7 +9412,7 @@ static void EnsureEarlyHouse(HouseZones bitmask)
for (auto &hs : HouseSpec::Specs()) { for (auto &hs : HouseSpec::Specs()) {
if (!hs.enabled) continue; if (!hs.enabled) continue;
if ((hs.building_availability & bitmask) != bitmask) continue; if ((hs.building_availability & bitmask) != bitmask) continue;
if (hs.min_year == min_year) hs.min_year = 0; if (hs.min_year == min_year) hs.min_year = CalendarTime::MIN_YEAR;
} }
} }
@ -10136,7 +10136,7 @@ void LoadNewGRF(SpriteID load_index, uint num_baseset)
TimerGameCalendar::date = TimerGameCalendar::ConvertYMDToDate(TimerGameCalendar::year, 0, 1); TimerGameCalendar::date = TimerGameCalendar::ConvertYMDToDate(TimerGameCalendar::year, 0, 1);
TimerGameCalendar::date_fract = 0; TimerGameCalendar::date_fract = 0;
TimerGameEconomy::year = _settings_game.game_creation.starting_year.base(); TimerGameEconomy::year = TimerGameEconomy::Year{_settings_game.game_creation.starting_year.base()};
TimerGameEconomy::date = TimerGameEconomy::ConvertYMDToDate(TimerGameEconomy::year, 0, 1); TimerGameEconomy::date = TimerGameEconomy::ConvertYMDToDate(TimerGameEconomy::year, 0, 1);
TimerGameEconomy::date_fract = 0; TimerGameEconomy::date_fract = 0;

View File

@ -558,7 +558,7 @@ int openttd_main(std::span<char * const> arguments)
scanner->join_server_password = mgo.opt; scanner->join_server_password = mgo.opt;
break; break;
case 'r': ParseResolution(&resolution, mgo.opt); break; case 'r': ParseResolution(&resolution, mgo.opt); break;
case 't': scanner->startyear = atoi(mgo.opt); break; case 't': scanner->startyear = TimerGameCalendar::Year(atoi(mgo.opt)); break;
case 'd': { case 'd': {
#if defined(_WIN32) #if defined(_WIN32)
CreateConsole(); CreateConsole();

View File

@ -569,7 +569,7 @@ bool AfterLoadGame()
extern TileIndex _cur_tileloop_tile; // From landscape.cpp. extern TileIndex _cur_tileloop_tile; // From landscape.cpp.
/* The LFSR used in RunTileLoop iteration cannot have a zeroed state, make it non-zeroed. */ /* The LFSR used in RunTileLoop iteration cannot have a zeroed state, make it non-zeroed. */
if (_cur_tileloop_tile == 0) _cur_tileloop_tile = 1; if (_cur_tileloop_tile == 0) _cur_tileloop_tile = TileIndex{1};
if (IsSavegameVersionBefore(SLV_98)) _gamelog.Oldver(); if (IsSavegameVersionBefore(SLV_98)) _gamelog.Oldver();
@ -3084,7 +3084,7 @@ bool AfterLoadGame()
if (IsValidCargoID(a.cargo)) { if (IsValidCargoID(a.cargo)) {
a.last_accepted = i->GetAccepted(0).last_accepted; a.last_accepted = i->GetAccepted(0).last_accepted;
} else { } else {
a.last_accepted = 0; a.last_accepted = EconomyTime::MIN_DATE;
} }
} }
} }
@ -3299,7 +3299,7 @@ bool AfterLoadGame()
if (IsSavegameVersionBefore(SLV_NEWGRF_LAST_SERVICE)) { if (IsSavegameVersionBefore(SLV_NEWGRF_LAST_SERVICE)) {
/* Set service date provided to NewGRF. */ /* Set service date provided to NewGRF. */
for (Vehicle *v : Vehicle::Iterate()) { for (Vehicle *v : Vehicle::Iterate()) {
v->date_of_last_service_newgrf = v->date_of_last_service.base(); v->date_of_last_service_newgrf = TimerGameCalendar::Date{v->date_of_last_service.base()};
} }
} }

View File

@ -190,7 +190,7 @@ void UpdateOldAircraft()
a->state = FLYING; a->state = FLYING;
AircraftNextAirportPos_and_Order(a); // move it to the entry point of the airport AircraftNextAirportPos_and_Order(a); // move it to the entry point of the airport
GetNewVehiclePosResult gp = GetNewVehiclePos(a); GetNewVehiclePosResult gp = GetNewVehiclePos(a);
a->tile = 0; // aircraft in air is tile=0 a->tile = TileIndex{}; // aircraft in air is tile=0
/* correct speed of helicopter-rotors */ /* correct speed of helicopter-rotors */
if (a->subtype == AIR_HELICOPTER) a->Next()->Next()->cur_speed = 32; if (a->subtype == AIR_HELICOPTER) a->Next()->Next()->cur_speed = 32;
@ -403,7 +403,7 @@ void AfterLoadVehiclesPhase1(bool part_of_load)
if (IsSavegameVersionBefore(SLV_VEHICLE_ECONOMY_AGE)) { if (IsSavegameVersionBefore(SLV_VEHICLE_ECONOMY_AGE)) {
/* Set vehicle economy age based on calendar age. */ /* Set vehicle economy age based on calendar age. */
for (Vehicle *v : Vehicle::Iterate()) { for (Vehicle *v : Vehicle::Iterate()) {
v->economy_age = v->age.base(); v->economy_age = TimerGameEconomy::Date{v->age.base()};
} }
} }
} }

View File

@ -83,7 +83,7 @@ static inline bool StoryPageElementTypeRequiresText(StoryPageElementType type)
TileIndex reftile{}; TileIndex reftile{};
switch (type) { switch (type) {
case SPET_LOCATION: case SPET_LOCATION:
reftile = reference; reftile = TileIndex(reference);
break; break;
case SPET_GOAL: case SPET_GOAL:
case SPET_BUTTON_PUSH: case SPET_BUTTON_PUSH:
@ -132,7 +132,7 @@ static inline bool StoryPageElementTypeRequiresText(StoryPageElementType type)
TileIndex reftile{}; TileIndex reftile{};
switch (type) { switch (type) {
case ::SPET_LOCATION: case ::SPET_LOCATION:
reftile = reference; reftile = TileIndex(reference);
break; break;
case ::SPET_GOAL: case ::SPET_GOAL:
case ::SPET_BUTTON_PUSH: case ::SPET_BUTTON_PUSH:

View File

@ -608,7 +608,7 @@ static void ChangeTimekeepingUnits(int32_t)
new_economy_date_fract = 0; new_economy_date_fract = 0;
} else { } else {
/* If the new mode is calendar units, sync the economy year with the calendar year. */ /* If the new mode is calendar units, sync the economy year with the calendar year. */
new_economy_date = TimerGameCalendar::date.base(); new_economy_date = TimerGameEconomy::Date{TimerGameCalendar::date.base()};
new_economy_date_fract = TimerGameCalendar::date_fract; new_economy_date_fract = TimerGameCalendar::date_fract;
} }

View File

@ -50,7 +50,7 @@ TimerGameEconomy::DateFract TimerGameEconomy::date_fract = {};
/* If we're using wallclock units, economy months have 30 days and an economy year has 360 days. */ /* If we're using wallclock units, economy months have 30 days and an economy year has 360 days. */
TimerGameEconomy::YearMonthDay ymd; TimerGameEconomy::YearMonthDay ymd;
ymd.year = date.base() / EconomyTime::DAYS_IN_ECONOMY_YEAR; ymd.year = Year{date.base() / EconomyTime::DAYS_IN_ECONOMY_YEAR};
ymd.month = (date.base() % EconomyTime::DAYS_IN_ECONOMY_YEAR) / EconomyTime::DAYS_IN_ECONOMY_MONTH; ymd.month = (date.base() % EconomyTime::DAYS_IN_ECONOMY_YEAR) / EconomyTime::DAYS_IN_ECONOMY_MONTH;
ymd.day = (date.base() % EconomyTime::DAYS_IN_ECONOMY_MONTH) + 1; ymd.day = (date.base() % EconomyTime::DAYS_IN_ECONOMY_MONTH) + 1;
return ymd; return ymd;

View File

@ -2465,10 +2465,10 @@ struct ScenarioEditorToolbarWindow : Window {
TimerGameCalendar::Year value; TimerGameCalendar::Year value;
if (!str->empty()) { if (!str->empty()) {
value = atoi(str->c_str()); value = TimerGameCalendar::Year{atoi(str->c_str())};
} else { } else {
/* An empty string means revert to the default */ /* An empty string means revert to the default */
value = CalendarTime::DEF_START_YEAR.base(); value = TimerGameCalendar::Year{CalendarTime::DEF_START_YEAR.base()};
} }
SetStartingYear(value); SetStartingYear(value);

View File

@ -627,7 +627,7 @@ CommandCost CmdBuildTunnel(DoCommandFlag flags, TileIndex start_tile, TransportT
RailType railtype = INVALID_RAILTYPE; RailType railtype = INVALID_RAILTYPE;
RoadType roadtype = INVALID_ROADTYPE; RoadType roadtype = INVALID_ROADTYPE;
_build_tunnel_endtile = 0; _build_tunnel_endtile = TileIndex{};
switch (transport_type) { switch (transport_type) {
case TRANSPORT_RAIL: case TRANSPORT_RAIL:
railtype = (RailType)road_rail_type; railtype = (RailType)road_rail_type;