Codechange: Use a switch with fall-through instead of a if-sequence with context data between cases.
This commit is contained in:
@@ -1908,38 +1908,42 @@ static void SetDefaultRailGui()
|
||||
if (_local_company == COMPANY_SPECTATOR || !Company::IsValidID(_local_company)) return;
|
||||
|
||||
extern RailType _last_built_railtype;
|
||||
RailType rt = (RailType)(_settings_client.gui.default_rail_type + RAILTYPE_END);
|
||||
if (rt == DEF_RAILTYPE_MOST_USED) {
|
||||
/* Find the most used rail type */
|
||||
uint count[RAILTYPE_END];
|
||||
memset(count, 0, sizeof(count));
|
||||
for (TileIndex t = 0; t < MapSize(); t++) {
|
||||
if (IsTileType(t, MP_RAILWAY) || IsLevelCrossingTile(t) || HasStationTileRail(t) ||
|
||||
(IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL)) {
|
||||
count[GetRailType(t)]++;
|
||||
RailType rt;
|
||||
switch (_settings_client.gui.default_rail_type) {
|
||||
case 2: {
|
||||
/* Find the most used rail type */
|
||||
uint count[RAILTYPE_END];
|
||||
memset(count, 0, sizeof(count));
|
||||
for (TileIndex t = 0; t < MapSize(); t++) {
|
||||
if (IsTileType(t, MP_RAILWAY) || IsLevelCrossingTile(t) || HasStationTileRail(t) ||
|
||||
(IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL)) {
|
||||
count[GetRailType(t)]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rt = RAILTYPE_RAIL;
|
||||
for (RailType r = RAILTYPE_ELECTRIC; r < RAILTYPE_END; r++) {
|
||||
if (count[r] >= count[rt]) rt = r;
|
||||
}
|
||||
rt = RAILTYPE_RAIL;
|
||||
for (RailType r = RAILTYPE_ELECTRIC; r < RAILTYPE_END; r++) {
|
||||
if (count[r] >= count[rt]) rt = r;
|
||||
}
|
||||
|
||||
/* No rail, just get the first available one */
|
||||
if (count[rt] == 0) rt = DEF_RAILTYPE_FIRST;
|
||||
}
|
||||
switch (rt) {
|
||||
case DEF_RAILTYPE_FIRST:
|
||||
if (count[rt] > 0) break;
|
||||
|
||||
/* No rail, just get the first available one */
|
||||
FALLTHROUGH;
|
||||
}
|
||||
case 0:
|
||||
/* Use first available type */
|
||||
rt = RAILTYPE_RAIL;
|
||||
while (rt < RAILTYPE_END && !HasRailtypeAvail(_local_company, rt)) rt++;
|
||||
break;
|
||||
|
||||
case DEF_RAILTYPE_LAST:
|
||||
case 1:
|
||||
/* Use last available type */
|
||||
rt = GetBestRailtype(_local_company);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
NOT_REACHED();
|
||||
}
|
||||
|
||||
_last_built_railtype = _cur_railtype = rt;
|
||||
|
Reference in New Issue
Block a user