(svn r3173) Use the trinary operator and switch to improve readability

Also align short cases nicely
This commit is contained in:
tron 2005-11-13 14:54:09 +00:00
parent ee15e3de13
commit 4a14a586e2
15 changed files with 235 additions and 305 deletions

View File

@ -80,8 +80,7 @@ static void BuildAirToolbWndProc(Window *w, WindowEvent *e)
case '1': BuildAirClick_Airport(w); break; case '1': BuildAirClick_Airport(w); break;
case '2': BuildAirClick_Demolish(w); break; case '2': BuildAirClick_Demolish(w); break;
case 'l': BuildAirClick_Landscaping(w); break; case 'l': BuildAirClick_Landscaping(w); break;
default: default: return;
return;
} }
} break; } break;
@ -167,16 +166,16 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e)
w->click_state = ((1<<3) << sel) | ((1<<8) << _station_show_coverage); w->click_state = ((1<<3) << sel) | ((1<<8) << _station_show_coverage);
SetTileSelectSize(_airport_size_x[sel],_airport_size_y[sel]); SetTileSelectSize(_airport_size_x[sel],_airport_size_y[sel]);
if (_patches.modified_catchment) { if (_patches.modified_catchment) {
switch (sel) { switch (sel) {
case AT_OILRIG: rad = CA_AIR_OILPAD; break; case AT_OILRIG: rad = CA_AIR_OILPAD; break;
case AT_HELIPORT: rad = CA_AIR_HELIPORT; break; case AT_HELIPORT: rad = CA_AIR_HELIPORT; break;
case AT_SMALL: rad = CA_AIR_SMALL; break; case AT_SMALL: rad = CA_AIR_SMALL; break;
case AT_LARGE: rad = CA_AIR_LARGE; break; case AT_LARGE: rad = CA_AIR_LARGE; break;
case AT_METROPOLITAN: rad = CA_AIR_METRO; break; case AT_METROPOLITAN: rad = CA_AIR_METRO; break;
case AT_INTERNATIONAL: rad = CA_AIR_INTER; break; case AT_INTERNATIONAL: rad = CA_AIR_INTER; break;
} }
} }
if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad);

View File

@ -230,11 +230,8 @@ static void BuildDockStationWndProc(Window *w, WindowEvent *e)
return; return;
w->click_state = (1<<3) << _station_show_coverage; w->click_state = (1<<3) << _station_show_coverage;
DrawWindowWidgets(w); DrawWindowWidgets(w);
if (_patches.modified_catchment) {
rad = CA_DOCK; rad = (_patches.modified_catchment) ? CA_DOCK : 4;
} else {
rad = 4;
}
if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad);
else SetTileSelectBigSize(0, 0, 0, 0); else SetTileSelectBigSize(0, 0, 0, 0);

23
gfx.c
View File

@ -434,7 +434,7 @@ void DrawStringMultiCenter(int x, int y, uint16 str, int maxw)
{ {
char buffer[512]; char buffer[512];
uint32 tmp; uint32 tmp;
int num, w, mt, t; int num, w, mt;
const char *src; const char *src;
byte c; byte c;
@ -442,12 +442,11 @@ void DrawStringMultiCenter(int x, int y, uint16 str, int maxw)
tmp = FormatStringLinebreaks(buffer, maxw); tmp = FormatStringLinebreaks(buffer, maxw);
num = (uint16)tmp; num = (uint16)tmp;
t = tmp >> 16;
mt = 10; switch (GB(tmp, 16, 16)) {
if (t != 0) { case 0: mt = 10; break;
mt = 6; case 244: mt = 6; break;
if (t != 244) mt = 18; default: mt = 18; break;
} }
y -= (mt >> 1) * num; y -= (mt >> 1) * num;
@ -481,7 +480,7 @@ void DrawStringMultiLine(int x, int y, uint16 str, int maxw)
{ {
char buffer[512]; char buffer[512];
uint32 tmp; uint32 tmp;
int num, w, mt, t; int num, w, mt;
const char *src; const char *src;
byte c; byte c;
@ -489,11 +488,11 @@ void DrawStringMultiLine(int x, int y, uint16 str, int maxw)
tmp = FormatStringLinebreaks(buffer, maxw); tmp = FormatStringLinebreaks(buffer, maxw);
num = (uint16)tmp; num = (uint16)tmp;
t = tmp >> 16;
mt = 10; switch (GB(tmp, 16, 16)) {
if (t != 0) { case 0: mt = 10; break;
mt = 6; case 244: mt = 6; break;
if (t != 244) mt = 18; default: mt = 18; break;
} }
src = buffer; src = buffer;

View File

@ -107,8 +107,8 @@ static void SelectGameWndProc(Window *w, WindowEvent *e)
case WE_DROPDOWN_SELECT: /* Mapsize selection */ case WE_DROPDOWN_SELECT: /* Mapsize selection */
switch (e->dropdown.button) { switch (e->dropdown.button) {
case 11: _patches.map_x = e->dropdown.index + 6; break; case 11: _patches.map_x = e->dropdown.index + 6; break;
case 13: _patches.map_y = e->dropdown.index + 6; break; case 13: _patches.map_y = e->dropdown.index + 6; break;
} }
SetWindowDirty(w); SetWindowDirty(w);
break; break;
@ -177,18 +177,19 @@ static void AskAbandonGameWndProc(Window *w, WindowEvent *e) {
return; return;
case WE_CLICK: case WE_CLICK:
switch(e->click.widget) { switch (e->click.widget) {
case 3: case 3: DeleteWindow(w); break;
DeleteWindow(w); case 4: _exit_game = true; break;
break;
case 4:
_exit_game = true;
break;
} }
break; break;
case WE_KEYPRESS: /* Exit game on pressing 'Enter' */ case WE_KEYPRESS: /* Exit game on pressing 'Enter' */
if (e->keypress.keycode == WKC_RETURN || e->keypress.keycode == WKC_NUM_ENTER) switch (e->keypress.keycode) {
_exit_game = true; case WKC_RETURN:
case WKC_NUM_ENTER:
_exit_game = true;
break;
}
break; break;
} }
} }

View File

@ -169,64 +169,49 @@ typedef void MenuClickedProc(int index);
static void MenuClickSettings(int index) static void MenuClickSettings(int index)
{ {
switch(index) { switch (index) {
case 0: ShowGameOptions(); return; case 0: ShowGameOptions(); return;
case 1: ShowGameDifficulty(); return; case 1: ShowGameDifficulty(); return;
case 2: ShowPatchesSelection(); return; case 2: ShowPatchesSelection(); return;
case 3: ShowNewgrf(); return; case 3: ShowNewgrf(); return;
case 5: _display_opt ^= DO_SHOW_TOWN_NAMES; MarkWholeScreenDirty(); return; case 5: _display_opt ^= DO_SHOW_TOWN_NAMES; break;
case 6: _display_opt ^= DO_SHOW_STATION_NAMES; MarkWholeScreenDirty(); return; case 6: _display_opt ^= DO_SHOW_STATION_NAMES; break;
case 7: _display_opt ^= DO_SHOW_SIGNS; MarkWholeScreenDirty(); return; case 7: _display_opt ^= DO_SHOW_SIGNS; break;
case 8: _display_opt ^= DO_WAYPOINTS; MarkWholeScreenDirty(); return; case 8: _display_opt ^= DO_WAYPOINTS; break;
case 9: _display_opt ^= DO_FULL_ANIMATION; MarkWholeScreenDirty(); return; case 9: _display_opt ^= DO_FULL_ANIMATION; break;
case 10: _display_opt ^= DO_FULL_DETAIL; MarkWholeScreenDirty(); return; case 10: _display_opt ^= DO_FULL_DETAIL; break;
case 11: _display_opt ^= DO_TRANS_BUILDINGS; MarkWholeScreenDirty(); return; case 11: _display_opt ^= DO_TRANS_BUILDINGS; break;
case 12: _display_opt ^= DO_TRANS_SIGNS; MarkWholeScreenDirty(); return; case 12: _display_opt ^= DO_TRANS_SIGNS; break;
} }
MarkWholeScreenDirty();
} }
static void MenuClickSaveLoad(int index) static void MenuClickSaveLoad(int index)
{ {
if (_game_mode == GM_EDITOR) { if (_game_mode == GM_EDITOR) {
switch(index) { switch (index) {
case 0: case 0: ShowSaveLoadDialog(SLD_SAVE_SCENARIO); break;
ShowSaveLoadDialog(SLD_SAVE_SCENARIO); case 1: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break;
break; case 2: AskExitToGameMenu(); break;
case 1: case 4: AskExitGame(); break;
ShowSaveLoadDialog(SLD_LOAD_SCENARIO);
break;
case 2:
AskExitToGameMenu();
break;
case 4:
AskExitGame();
break;
} }
} else { } else {
switch(index) { switch (index) {
case 0: case 0: ShowSaveLoadDialog(SLD_SAVE_GAME); break;
ShowSaveLoadDialog(SLD_SAVE_GAME); case 1: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
break; case 2: AskExitToGameMenu(); break;
case 1: case 3: AskExitGame(); break;
ShowSaveLoadDialog(SLD_LOAD_GAME);
break;
case 2:
AskExitToGameMenu();
break;
case 3:
AskExitGame();
break;
} }
} }
} }
static void MenuClickMap(int index) static void MenuClickMap(int index)
{ {
switch(index) { switch (index) {
case 0: ShowSmallMap(); break; case 0: ShowSmallMap(); break;
case 1: ShowExtraViewPortWindow(); break; case 1: ShowExtraViewPortWindow(); break;
case 2: ShowSignList(); break; case 2: ShowSignList(); break;
} }
} }
@ -237,11 +222,11 @@ static void MenuClickTown(int index)
static void MenuClickScenMap(int index) static void MenuClickScenMap(int index)
{ {
switch(index) { switch (index) {
case 0: ShowSmallMap(); break; case 0: ShowSmallMap(); break;
case 1: ShowExtraViewPortWindow(); break; case 1: ShowExtraViewPortWindow(); break;
case 2: ShowSignList(); break; case 2: ShowSignList(); break;
case 3: ShowTownDirectory(); break; case 3: ShowTownDirectory(); break;
} }
} }
@ -279,29 +264,29 @@ static void MenuClickCompany(int index)
static void MenuClickGraphs(int index) static void MenuClickGraphs(int index)
{ {
switch(index) { switch (index) {
case 0: ShowOperatingProfitGraph(); return; case 0: ShowOperatingProfitGraph(); break;
case 1: ShowIncomeGraph(); return; case 1: ShowIncomeGraph(); break;
case 2: ShowDeliveredCargoGraph(); return; case 2: ShowDeliveredCargoGraph(); break;
case 3: ShowPerformanceHistoryGraph(); return; case 3: ShowPerformanceHistoryGraph(); break;
case 4: ShowCompanyValueGraph(); return; case 4: ShowCompanyValueGraph(); break;
case 5: ShowCargoPaymentRates(); return; case 5: ShowCargoPaymentRates(); break;
} }
} }
static void MenuClickLeague(int index) static void MenuClickLeague(int index)
{ {
switch(index) { switch (index) {
case 0: ShowCompanyLeagueTable(); return; case 0: ShowCompanyLeagueTable(); break;
case 1: ShowPerformanceRatingDetail(); return; case 1: ShowPerformanceRatingDetail(); break;
} }
} }
static void MenuClickIndustry(int index) static void MenuClickIndustry(int index)
{ {
switch(index) { switch (index) {
case 0: ShowIndustryDirectory(); break; case 0: ShowIndustryDirectory(); break;
case 1: ShowBuildIndustryWindow(); break; case 1: ShowBuildIndustryWindow(); break;
} }
} }
@ -414,10 +399,10 @@ static void SelectSignTool(void)
static void MenuClickForest(int index) static void MenuClickForest(int index)
{ {
switch(index) { switch (index) {
case 0: ShowTerraformToolbar(); break; case 0: ShowTerraformToolbar(); break;
case 1: ShowBuildTreesToolbar(); break; case 1: ShowBuildTreesToolbar(); break;
case 2: SelectSignTool(); break; case 2: SelectSignTool(); break;
} }
} }
@ -428,21 +413,21 @@ static void MenuClickMusicWindow(int index)
static void MenuClickNewspaper(int index) static void MenuClickNewspaper(int index)
{ {
switch(index) { switch (index) {
case 0: ShowLastNewsMessage(); break; case 0: ShowLastNewsMessage(); break;
case 1: ShowMessageOptions(); break; case 1: ShowMessageOptions(); break;
case 2: ShowMessageHistory(); break; case 2: ShowMessageHistory(); break;
} }
} }
static void MenuClickHelp(int index) static void MenuClickHelp(int index)
{ {
switch (index) { switch (index) {
case 0: PlaceLandBlockInfo(); break; case 0: PlaceLandBlockInfo(); break;
case 2: IConsoleSwitch(); break; case 2: IConsoleSwitch(); break;
case 3: _make_screenshot = 1; break; case 3: _make_screenshot = 1; break;
case 4: _make_screenshot = 2; break; case 4: _make_screenshot = 2; break;
case 5: ShowAboutWindow(); break; case 5: ShowAboutWindow(); break;
} }
} }
@ -863,10 +848,10 @@ bool DoZoomInOutWindow(int how, Window *w)
ViewPort *vp; ViewPort *vp;
int button; int button;
switch(_game_mode) { switch (_game_mode) {
case GM_EDITOR: button = 9; break; case GM_EDITOR: button = 9; break;
case GM_NORMAL: button = 17; break; case GM_NORMAL: button = 17; break;
default: return false; default: return false;
} }
assert(w); assert(w);

View File

@ -142,10 +142,7 @@ static void Place_LandInfo(TileIndex tile)
lid.tile = tile; lid.tile = tile;
lid.town = ClosestTownFromTile(tile, _patches.dist_local_authority); lid.town = ClosestTownFromTile(tile, _patches.dist_local_authority);
if (_local_player >= MAX_PLAYERS) p = GetPlayer(_local_player < MAX_PLAYERS ? _local_player : 0);
p = GetPlayer(0);
else
p = GetPlayer(_local_player);
old_money = p->money64; old_money = p->money64;
p->money64 = p->player_money = 0x7fffffff; p->money64 = p->player_money = 0x7fffffff;
@ -1199,22 +1196,21 @@ static void DrawFiosTexts(uint maxw)
static void MakeSortedSaveGameList(void) static void MakeSortedSaveGameList(void)
{ {
uint sort_start = 0;
uint sort_end = 0;
uint s_amount;
int i;
/* Directories are always above the files (FIOS_TYPE_DIR) /* Directories are always above the files (FIOS_TYPE_DIR)
* Drives (A:\ (windows only) are always under the files (FIOS_TYPE_DRIVE) * Drives (A:\ (windows only) are always under the files (FIOS_TYPE_DRIVE)
* Only sort savegames/scenarios, not directories * Only sort savegames/scenarios, not directories
*/ */
for (i = 0; i < _fios_num; i++) {
int i, sort_start, sort_end, s_amount; switch (_fios_list[i].type) {
i = sort_start = sort_end = 0; case FIOS_TYPE_DIR: sort_start++; break;
case FIOS_TYPE_PARENT: sort_start++; break;
while (i < _fios_num) { case FIOS_TYPE_DRIVE: sort_end++; break;
if (_fios_list[i].type == FIOS_TYPE_DIR || _fios_list[i].type == FIOS_TYPE_PARENT) }
sort_start++;
if (_fios_list[i].type == FIOS_TYPE_DRIVE)
sort_end++;
i++;
} }
s_amount = _fios_num - sort_start - sort_end; s_amount = _fios_num - sort_start - sort_end;
@ -1224,13 +1220,9 @@ static void MakeSortedSaveGameList(void)
static void GenerateFileName(void) static void GenerateFileName(void)
{ {
const Player *p;
/* Check if we are not a specatator who wants to generate a name.. /* Check if we are not a specatator who wants to generate a name..
Let's use the name of player #0 for now. */ Let's use the name of player #0 for now. */
if (_local_player < MAX_PLAYERS) const Player* p = GetPlayer(_local_player < MAX_PLAYERS ? _local_player : 0);
p = GetPlayer(_local_player);
else
p = GetPlayer(0);
SetDParam(0, p->name_1); SetDParam(0, p->name_1);
SetDParam(1, p->name_2); SetDParam(1, p->name_2);
@ -1464,12 +1456,8 @@ void ShowSaveLoadDialog(int mode)
SETBIT(_no_scroll, SCROLL_SAVE); SETBIT(_no_scroll, SCROLL_SAVE);
switch (mode) { switch (mode) {
case SLD_SAVE_GAME: case SLD_SAVE_GAME: GenerateFileName(); break;
GenerateFileName(); case SLD_SAVE_SCENARIO: strcpy(_edit_str_buf, "UNNAMED"); break;
break;
case SLD_SAVE_SCENARIO:
strcpy(_edit_str_buf, "UNNAMED");
break;
} }
w = AllocateWindowDesc(_saveload_dialogs[mode]); w = AllocateWindowDesc(_saveload_dialogs[mode]);
@ -1716,18 +1704,17 @@ typedef struct CheatEntry {
uint16 step; // step for spinbox uint16 step; // step for spinbox
} CheatEntry; } CheatEntry;
static int32 ReadCE(const CheatEntry*ce) static int32 ReadCE(const CheatEntry* ce)
{ {
switch(ce->type) { switch (ce->type) {
case CE_BOOL: return *(bool*)ce->variable; case CE_BOOL: return *(bool* )ce->variable;
case CE_UINT8: return *(uint8*)ce->variable; case CE_UINT8: return *(uint8* )ce->variable;
case CE_INT16: return *(int16*)ce->variable; case CE_INT16: return *(int16* )ce->variable;
case CE_UINT16: return *(uint16*)ce->variable; case CE_UINT16: return *(uint16*)ce->variable;
case CE_INT32: return *(int32*)ce->variable; case CE_INT32: return *(int32* )ce->variable;
case CE_BYTE: return *(byte*)ce->variable; case CE_BYTE: return *(byte* )ce->variable;
case CE_CLICK: return 0; case CE_CLICK: return 0;
default: default: NOT_REACHED();
NOT_REACHED();
} }
/* useless, but avoids compiler warning this way */ /* useless, but avoids compiler warning this way */
@ -1736,16 +1723,15 @@ static int32 ReadCE(const CheatEntry*ce)
static void WriteCE(const CheatEntry *ce, int32 val) static void WriteCE(const CheatEntry *ce, int32 val)
{ {
switch(ce->type) { switch (ce->type) {
case CE_BOOL: *(bool*)ce->variable = (bool)val; break; case CE_BOOL: *(bool* )ce->variable = (bool )val; break;
case CE_BYTE: *(byte*)ce->variable = (byte)val; break; case CE_BYTE: *(byte* )ce->variable = (byte )val; break;
case CE_UINT8: *(uint8*)ce->variable = (uint8)val; break; case CE_UINT8: *(uint8* )ce->variable = (uint8 )val; break;
case CE_INT16: *(int16*)ce->variable = (int16)val; break; case CE_INT16: *(int16* )ce->variable = (int16 )val; break;
case CE_UINT16: *(uint16*)ce->variable = (uint16)val; break; case CE_UINT16: *(uint16*)ce->variable = (uint16)val; break;
case CE_INT32: *(int32*)ce->variable = val; break; case CE_INT32: *(int32* )ce->variable = val; break;
case CE_CLICK: break; case CE_CLICK: break;
default: default: NOT_REACHED();
NOT_REACHED();
} }
} }

View File

@ -707,12 +707,11 @@ bool SafeSaveOrLoad(const char *filename, int mode, int newgm)
_game_mode = newgm; _game_mode = newgm;
r = SaveOrLoad(filename, mode); r = SaveOrLoad(filename, mode);
if (r == SL_REINIT) { if (r == SL_REINIT) {
if (ogm == GM_MENU) switch (ogm) {
LoadIntroGame(); case GM_MENU: LoadIntroGame(); break;
else if (ogm == GM_EDITOR) case GM_EDITOR: MakeNewEditorWorld(); break;
MakeNewEditorWorld(); default: MakeNewGame(); break;
else }
MakeNewGame();
return false; return false;
} else if (r != SL_OK) { } else if (r != SL_OK) {
_game_mode = ogm; _game_mode = ogm;

View File

@ -127,37 +127,39 @@ static void DrawOrdersWindow(Window *w)
if (i - w->vscroll.pos < w->vscroll.cap) { if (i - w->vscroll.pos < w->vscroll.cap) {
SetDParam(1, 6); SetDParam(1, 6);
if (order->type == OT_GOTO_STATION) { switch (order->type) {
SetDParam(1, StationOrderStrings[order->flags]); case OT_GOTO_STATION:
SetDParam(2, order->station); SetDParam(1, StationOrderStrings[order->flags]);
} else if (order->type == OT_GOTO_DEPOT) {
StringID s = STR_NULL;
if (v->type == VEH_Aircraft) {
s = STR_GO_TO_AIRPORT_HANGAR;
SetDParam(2, order->station); SetDParam(2, order->station);
} else { break;
SetDParam(2, GetDepot(order->station)->town_index);
switch (v->type) { case OT_GOTO_DEPOT: {
case VEH_Train: s = STR_GO_TO_TRAIN_DEPOT; break; StringID s = STR_NULL;
case VEH_Road: s = STR_9038_GO_TO_ROADVEH_DEPOT; break;
case VEH_Ship: s = STR_GO_TO_SHIP_DEPOT; break; if (v->type == VEH_Aircraft) {
default: s = STR_GO_TO_AIRPORT_HANGAR;
break; SetDParam(2, order->station);
} else {
SetDParam(2, GetDepot(order->station)->town_index);
switch (v->type) {
case VEH_Train: s = (order->flags & OF_NON_STOP) ? STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT : STR_GO_TO_TRAIN_DEPOT; break;
case VEH_Road: s = STR_9038_GO_TO_ROADVEH_DEPOT; break;
case VEH_Ship: s = STR_GO_TO_SHIP_DEPOT; break;
default: break;
}
} }
if (v->type == VEH_Train && order->flags & OF_NON_STOP) s += 2; if (order->flags & OF_FULL_LOAD) s++; /* service at */
SetDParam(1, s); SetDParam(1, s);
break;
} }
if (order->flags & OF_FULL_LOAD) case OT_GOTO_WAYPOINT:
s++; /* service at */ SetDParam(1, (order->flags & OF_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
SetDParam(2, order->station);
SetDParam(1, s); break;
} else if (order->type == OT_GOTO_WAYPOINT) {
SetDParam(1, (order->flags & OF_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
SetDParam(2, order->station);
} }
color = (i == WP(w,order_d).sel) ? 0xC : 0x10; color = (i == WP(w,order_d).sel) ? 0xC : 0x10;

View File

@ -422,24 +422,21 @@ static void DrawPlayerVehiclesAmount(PlayerID player)
const int x = 110; const int x = 110;
int y = 72; int y = 72;
const Vehicle* v; const Vehicle* v;
uint train,road,air,ship; uint train = 0;
uint road = 0;
uint air = 0;
uint ship = 0;
DrawString(x, y, STR_7039_VEHICLES, 0); DrawString(x, y, STR_7039_VEHICLES, 0);
train = road = air = ship = 0;
FOR_ALL_VEHICLES(v) { FOR_ALL_VEHICLES(v) {
if (v->owner == player) { if (v->owner == player) {
if (v->type == VEH_Train) { switch (v->type) {
if (v->subtype == TS_Front_Engine) case VEH_Train: if (v->subtype == TS_Front_Engine) train++; break;
train++; case VEH_Road: road++; break;
} else if (v->type == VEH_Road) { case VEH_Aircraft: if (v->subtype <= 2) air++; break;
road++; case VEH_Ship: ship++; break;
} else if (v->type == VEH_Aircraft) { default: break;
if (v->subtype <= 2)
air++;
} else if (v->type == VEH_Ship) {
ship++;
} }
} }
} }

View File

@ -2003,21 +2003,20 @@ static void TileLoop_Track(TileIndex tile)
m2 = GB(_m[tile].m2, 0, 4); m2 = GB(_m[tile].m2, 0, 4);
/* special code for alps landscape */ switch (_opt.landscape) {
if (_opt.landscape == LT_HILLY) { case LT_HILLY:
/* convert into snow? */ if (GetTileZ(tile) > _opt.snow_line) { /* convert into snow? */
if (GetTileZ(tile) > _opt.snow_line) { a2 = RAIL_GROUND_ICE_DESERT;
a2 = RAIL_GROUND_ICE_DESERT; goto modify_me;
goto modify_me; }
} break;
/* special code for desert landscape */ case LT_DESERT:
} else if (_opt.landscape == LT_DESERT) { if (GetMapExtraBits(tile) == 1) { /* convert into desert? */
/* convert into desert? */ a2 = RAIL_GROUND_ICE_DESERT;
if (GetMapExtraBits(tile) == 1) { goto modify_me;
a2 = RAIL_GROUND_ICE_DESERT; }
goto modify_me; break;
}
} }
// Don't continue tile loop for depots // Don't continue tile loop for depots

View File

@ -202,19 +202,18 @@ static void BuildRoadToolbWndProc(Window *w, WindowEvent *e) {
} break; } break;
case WE_KEYPRESS: case WE_KEYPRESS:
switch(e->keypress.keycode) { switch (e->keypress.keycode) {
case '1': BuildRoadClick_NE(w); break; case '1': BuildRoadClick_NE(w); break;
case '2': BuildRoadClick_NW(w); break; case '2': BuildRoadClick_NW(w); break;
case '3': BuildRoadClick_Demolish(w); break; case '3': BuildRoadClick_Demolish(w); break;
case '4': BuildRoadClick_Depot(w); break; case '4': BuildRoadClick_Depot(w); break;
case '5': BuildRoadClick_BusStation(w); break; case '5': BuildRoadClick_BusStation(w); break;
case '6': BuildRoadClick_TruckStation(w); break; case '6': BuildRoadClick_TruckStation(w); break;
case 'B': BuildRoadClick_Bridge(w); break; case 'B': BuildRoadClick_Bridge(w); break;
case 'T': BuildRoadClick_Tunnel(w); break; case 'T': BuildRoadClick_Tunnel(w); break;
case 'R': BuildRoadClick_Remove(w); break; case 'R': BuildRoadClick_Remove(w); break;
case 'L': BuildRoadClick_Landscaping(w); break; case 'L': BuildRoadClick_Landscaping(w); break;
default: default: return;
return;
} }
MarkTileDirty(_thd.pos.x, _thd.pos.y); // redraw tile selection MarkTileDirty(_thd.pos.x, _thd.pos.y); // redraw tile selection
e->keypress.cont = false; e->keypress.cont = false;

View File

@ -793,40 +793,28 @@ static int32 ReadPE(const PatchEntry*pe)
return 0; return 0;
} }
static void WritePE(const PatchEntry *pe, int32 val) static void WritePE(const PatchEntry* p, int32 v)
{ {
if ((pe->flags & PF_0ISDIS) && val <= 0) { if ((p->flags & PF_0ISDIS) && v <= 0) {
switch (pe->type) { switch (p->type) {
case PE_BOOL: case PE_UINT8: case PE_BOOL: *(bool* )p->variable = false; break;
*(bool*)pe->variable = 0; case PE_UINT8: *(uint8* )p->variable = 0; break;
break; case PE_INT16: *(int16* )p->variable = 0; break;
case PE_INT16: case PE_UINT16: case PE_UINT16: *(uint16*)p->variable = 0; break;
*(int16*)pe->variable = 0; case PE_CURRENCY: *(int32* )p->variable = 0; break;
break; case PE_INT32: *(int32* )p->variable = 0; break;
case PE_CURRENCY: case PE_INT32:
*(int32*)pe->variable = 0;
break;
} }
return; return;
} }
// "clamp" 'disabled' value to smallest type // "clamp" 'disabled' value to smallest type
switch (pe->type) { switch (p->type) {
case PE_BOOL: case PE_BOOL: *(bool* )p->variable = (v != 0); break;
*(bool*)pe->variable = (bool)val; case PE_UINT8: *(uint8* )p->variable = clamp(v, p->min, p->max); break;
break; case PE_INT16: *(int16* )p->variable = clamp(v, p->min, p->max); break;
case PE_UINT8: case PE_UINT16: *(uint16*)p->variable = clamp(v, p->min, p->max); break;
*(uint8*)pe->variable = (uint8)clamp((uint8)val, (uint8)pe->min, (uint8)pe->max); case PE_CURRENCY: *(int32* )p->variable = clamp(v, p->min, p->max); break;
break; case PE_INT32: *(int32* )p->variable = clamp(v, p->min, p->max); break;
case PE_INT16:
*(int16*)pe->variable = (int16)clamp((int16)val, (int16)pe->min, (int16)pe->max);
break;
case PE_UINT16:
*(uint16*)pe->variable = (uint16)clamp((uint16)val, (uint16)pe->min, (uint16)pe->max);
break;
case PE_CURRENCY: case PE_INT32:
*(int32*)pe->variable = (int32)clamp((int32)val, (int32)pe->min, (int32)pe->max);
break;
default: NOT_REACHED(); default: NOT_REACHED();
} }
} }

View File

@ -99,10 +99,9 @@ static void InitializeRoadStop(RoadStop *road_stop, RoadStop *previous, TileInde
RoadStop * GetPrimaryRoadStop(const Station *st, RoadStopType type) RoadStop * GetPrimaryRoadStop(const Station *st, RoadStopType type)
{ {
switch (type) { switch (type) {
case RS_BUS: return st->bus_stops; case RS_BUS: return st->bus_stops;
case RS_TRUCK: return st->truck_stops; case RS_TRUCK: return st->truck_stops;
default: default: NOT_REACHED();
NOT_REACHED();
} }
return NULL; return NULL;
@ -677,11 +676,7 @@ static void UpdateStationAcceptance(Station *st, bool show_msg)
MergePoint(&rect, cur_rs->xy); MergePoint(&rect, cur_rs->xy);
} }
if (_patches.modified_catchment) { rad = (_patches.modified_catchment) ? FindCatchmentRadius(st) : 4;
rad = FindCatchmentRadius(st);
} else {
rad = 4;
}
// And retrieve the acceptance. // And retrieve the acceptance.
if (rect.max_x >= rect.min_x) { if (rect.max_x >= rect.min_x) {
@ -1242,27 +1237,13 @@ static const RealSpriteGroup *ResolveStationSpriteGroup(const SpriteGroup *spg,
// TTDPatch runs on little-endian arch; // TTDPatch runs on little-endian arch;
// Variable is 0x70 + offset in the TTD's station structure // Variable is 0x70 + offset in the TTD's station structure
switch (dsg->variable - 0x70) { switch (dsg->variable - 0x70) {
case 0x80: case 0x80: value = st->facilities; break;
value = st->facilities; case 0x81: value = st->airport_type; break;
break; case 0x82: value = st->truck_stops->status; break;
case 0x81: case 0x83: value = st->bus_stops->status; break;
value = st->airport_type; case 0x86: value = st->airport_flags & 0xFFFF; break;
break; case 0x87: value = st->airport_flags & 0xFF; break;
case 0x82: case 0x8A: value = st->build_date; break;
value = st->truck_stops->status;
break;
case 0x83:
value = st->bus_stops->status;
break;
case 0x86:
value = st->airport_flags & 0xFFFF;
break;
case 0x87:
value = st->airport_flags & 0xFF;
break;
case 0x8A:
value = st->build_date;
break;
} }
} }
} }

View File

@ -109,14 +109,12 @@ bool VehicleNeedsService(const Vehicle *v)
void VehicleInTheWayErrMsg(const Vehicle* v) void VehicleInTheWayErrMsg(const Vehicle* v)
{ {
StringID id; switch (v->type) {
case VEH_Train: _error_message = STR_8803_TRAIN_IN_THE_WAY; break;
(id = STR_8803_TRAIN_IN_THE_WAY,v->type == VEH_Train) || case VEH_Road: _error_message = STR_9000_ROAD_VEHICLE_IN_THE_WAY; break;
(id = STR_9000_ROAD_VEHICLE_IN_THE_WAY,v->type == VEH_Road) || case VEH_Aircraft: _error_message = STR_A015_AIRCRAFT_IN_THE_WAY; break;
(id = STR_A015_AIRCRAFT_IN_THE_WAY,v->type == VEH_Aircraft) || default: _error_message = STR_980E_SHIP_IN_THE_WAY; break;
(id = STR_980E_SHIP_IN_THE_WAY, true); }
_error_message = id;
} }
static void *EnsureNoVehicleProc(Vehicle *v, void *data) static void *EnsureNoVehicleProc(Vehicle *v, void *data)

View File

@ -1462,10 +1462,10 @@ static void MouseLoop(int click, int mousewheel)
if (mousewheel) if (mousewheel)
DispatchMouseWheelEvent(w, GetWidgetFromPos(w, x - w->left, y - w->top), mousewheel); DispatchMouseWheelEvent(w, GetWidgetFromPos(w, x - w->left, y - w->top), mousewheel);
if (click == 1) switch (click) {
DispatchLeftClickEvent(w, x - w->left, y - w->top); case 1: DispatchLeftClickEvent(w, x - w->left, y - w->top); break;
else if (click == 2) case 2: DispatchRightClickEvent(w, x - w->left, y - w->top); break;
DispatchRightClickEvent(w, x - w->left, y - w->top); }
} }
} }