Codechange: Use a switch with fall-through instead of a if-sequence with context data between cases.

pull/128/head
frosch 5 years ago committed by Charles Pigott
parent 7f351fd7c1
commit 3d29c9483b

@ -1908,8 +1908,9 @@ 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) {
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));
@ -1925,21 +1926,24 @@ static void SetDefaultRailGui()
if (count[r] >= count[rt]) rt = r;
}
if (count[rt] > 0) break;
/* No rail, just get the first available one */
if (count[rt] == 0) rt = DEF_RAILTYPE_FIRST;
FALLTHROUGH;
}
switch (rt) {
case DEF_RAILTYPE_FIRST:
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;

@ -32,10 +32,6 @@ enum RailType : byte {
RAILTYPE_MAGLEV = 3, ///< Maglev
RAILTYPE_END = 64, ///< Used for iterations
INVALID_RAILTYPE = 0xFF, ///< Flag for invalid railtype
DEF_RAILTYPE_FIRST = RAILTYPE_END, ///< Default railtype: first available
DEF_RAILTYPE_LAST, ///< Default railtype: last available
DEF_RAILTYPE_MOST_USED, ///< Default railtype: most used
};
/** Allow incrementing of Track variables */

Loading…
Cancel
Save