summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-02-06 09:18:04 +0000
committertron <tron@openttd.org>2006-02-06 09:18:04 +0000
commit453b30e387f8d8ab1839d96b0d1f9a8fea841292 (patch)
tree3a4002304d8204d11c37ba706d6ffbd2e5dfac1b
parent0755bbead0240f519c9d78bb88ef4629d5ab8fa5 (diff)
downloadopenttd-453b30e387f8d8ab1839d96b0d1f9a8fea841292.tar.xz
(svn r3564) Several smaller changes:
- Don't treat non-booleans as booleans - Reduce variable scope - Bracing - Use DeMorgan's law to make conditionals easier to read - if cascade -> switch - Replace some magic numbers by symbolic names - Avoid assignments within other statements
-rw-r--r--ai/default/default.c3
-rw-r--r--aircraft_cmd.c2
-rw-r--r--clear_cmd.c7
-rw-r--r--disaster_cmd.c3
-rw-r--r--economy.c59
-rw-r--r--industry_gui.c39
-rw-r--r--misc.c27
-rw-r--r--network_data.c4
-rw-r--r--openttd.c8
-rw-r--r--order_cmd.c28
-rw-r--r--rail.h6
-rw-r--r--rail_cmd.c9
-rw-r--r--road_cmd.c5
-rw-r--r--roadveh_cmd.c30
-rw-r--r--smallmap_gui.c22
-rw-r--r--sound.c2
-rw-r--r--station_cmd.c12
-rw-r--r--table/tree_land.h10
-rw-r--r--train_cmd.c4
-rw-r--r--tunnelbridge_cmd.c6
-rw-r--r--vehicle_gui.c37
-rw-r--r--water_cmd.c31
-rw-r--r--window.c76
23 files changed, 218 insertions, 212 deletions
diff --git a/ai/default/default.c b/ai/default/default.c
index c183caafc..9c639bea6 100644
--- a/ai/default/default.c
+++ b/ai/default/default.c
@@ -2778,8 +2778,7 @@ static bool AiEnumFollowRoad(TileIndex tile, AiRoadEnum *a, int track, uint leng
if (dist <= a->best_dist) {
TileIndex tile2 = TILE_MASK(tile + TileOffsByDir(_dir_by_track[track]));
- if (IsTileType(tile2, MP_STREET) &&
- (_m[tile2].m5&0xF0) == 0) {
+ if (IsTileType(tile2, MP_STREET) && GB(_m[tile2].m5, 4, 4) == 0) {
a->best_dist = dist;
a->best_tile = tile;
a->best_track = track;
diff --git a/aircraft_cmd.c b/aircraft_cmd.c
index 631166ec7..d1cc12a46 100644
--- a/aircraft_cmd.c
+++ b/aircraft_cmd.c
@@ -98,7 +98,7 @@ int GetAircraftImage(const Vehicle *v, byte direction)
if (is_custom_sprite(spritenum)) {
int sprite = GetCustomVehicleSprite(v, direction);
- if (sprite) return sprite;
+ if (sprite != 0) return sprite;
spritenum = orig_aircraft_vehicle_info[v->engine_type - AIRCRAFT_ENGINES_INDEX].image_index;
}
return direction + _aircraft_sprite[spritenum];
diff --git a/clear_cmd.c b/clear_cmd.c
index 31d130b23..8577761be 100644
--- a/clear_cmd.c
+++ b/clear_cmd.c
@@ -637,10 +637,9 @@ static void TileLoop_Clear(TileIndex tile)
{
TileLoopClearHelper(tile);
- if (_opt.landscape == LT_DESERT) {
- TileLoopClearDesert(tile);
- } else if (_opt.landscape == LT_HILLY) {
- TileLoopClearAlps(tile);
+ switch (_opt.landscape) {
+ case LT_DESERT: TileLoopClearDesert(tile); break;
+ case LT_HILLY: TileLoopClearAlps(tile); break;
}
switch (GetClearGround(tile)) {
diff --git a/disaster_cmd.c b/disaster_cmd.c
index 39e97c1b2..2c8c6e73c 100644
--- a/disaster_cmd.c
+++ b/disaster_cmd.c
@@ -898,10 +898,11 @@ static void Disaster6_Init(void)
static void Disaster7_Init(void)
{
int index = GB(Random(), 0, 4);
- Industry *i;
uint m;
for (m = 0; m < 15; m++) {
+ const Industry* i;
+
FOR_ALL_INDUSTRIES(i) {
if (i->xy != 0 && i->type == IT_COAL_MINE && --index < 0) {
SetDParam(0, i->town->index);
diff --git a/economy.c b/economy.c
index 5ad3eaba9..311bc0d7e 100644
--- a/economy.c
+++ b/economy.c
@@ -346,14 +346,12 @@ void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player)
DeleteVehicle(v);
} else {
v->owner = new_player;
- if (v->type == VEH_Train && IsFrontEngine(v))
- v->unitnumber = ++num_train;
- else if (v->type == VEH_Road)
- v->unitnumber = ++num_road;
- else if (v->type == VEH_Ship)
- v->unitnumber = ++num_ship;
- else if (v->type == VEH_Aircraft && v->subtype <= 2)
- v->unitnumber = ++num_aircraft;
+ switch (v->type) {
+ case VEH_Train: if (IsFrontEngine(v)) v->unitnumber = ++num_train; break;
+ case VEH_Road: v->unitnumber = ++num_road; break;
+ case VEH_Ship: v->unitnumber = ++num_ship; break;
+ case VEH_Aircraft: if (v->subtype <= 2) v->unitnumber = ++num_aircraft; break;
+ }
}
}
}
@@ -1190,10 +1188,17 @@ static bool CheckSubsidised(Station *from, Station *to, byte cargo_type)
if (DistanceMax(xy, from->xy) > 9) continue;
/* Check distance from dest */
- if (cargo_type == CT_PASSENGERS || cargo_type == CT_MAIL || cargo_type == CT_GOODS || cargo_type == CT_FOOD) {
- xy = GetTown(s->to)->xy;
- } else {
- xy = (GetIndustry(s->to))->xy;
+ switch (cargo_type) {
+ case CT_PASSENGERS:
+ case CT_MAIL:
+ case CT_GOODS:
+ case CT_FOOD:
+ xy = GetTown(s->to)->xy;
+ break;
+
+ default:
+ xy = GetIndustry(s->to)->xy;
+ break;
}
if (DistanceMax(xy, to->xy) > 9) continue;
@@ -1256,18 +1261,11 @@ static int32 DeliverGoods(int num_pieces, byte cargo_type, uint16 source, uint16
// Modify profit if a subsidy is in effect
if (subsidised) {
- if (_opt.diff.subsidy_multiplier < 1) {
- /* 1.5x */
- profit += profit >> 1;
- } else if (_opt.diff.subsidy_multiplier == 1) {
- /* 2x */
- profit *= 2;
- } else if (_opt.diff.subsidy_multiplier == 2) {
- /* 3x */
- profit *= 3;
- } else {
- /* 4x */
- profit *= 4;
+ switch (_opt.diff.subsidy_multiplier) {
+ case 0: profit += profit >> 1;
+ case 1: profit *= 2;
+ case 2: profit *= 3;
+ default: profit *= 4;
}
}
@@ -1353,7 +1351,8 @@ int LoadUnloadVehicle(Vehicle *v)
old_player = _current_player;
_current_player = v->owner;
- st = GetStation(last_visited = v->last_station_visited);
+ last_visited = v->last_station_visited;
+ st = GetStation(last_visited);
for (; v != NULL; v = v->next) {
GoodsEntry* ge;
@@ -1413,12 +1412,14 @@ int LoadUnloadVehicle(Vehicle *v)
/* update stats */
ge->days_since_pickup = 0;
- t = u->max_speed;
- if (u->type == VEH_Road) t >>=1;
- if (u->type == VEH_Train) t = u->u.rail.cached_max_speed;
+ switch (u->type) {
+ case VEH_Train: t = u->u.rail.cached_max_speed; break;
+ case VEH_Road: t = u->max_speed / 2; break;
+ default: t = u->max_speed; break;
+ }
// if last speed is 0, we treat that as if no vehicle has ever visited the station.
- ge->last_speed = t < 255 ? t : 255;
+ ge->last_speed = min(t, 255);
ge->last_age = _cur_year - v->build_year;
// If there's goods waiting at the station, and the vehicle
diff --git a/industry_gui.c b/industry_gui.c
index 338afc470..6449aa880 100644
--- a/industry_gui.c
+++ b/industry_gui.c
@@ -280,22 +280,22 @@ static void IndustryViewWndProc(Window *w, WindowEvent *e)
switch (e->event) {
case WE_PAINT: {
- const Industry *i;
- StringID str;
+ const Industry* i = GetIndustry(w->window_number);
- i = GetIndustry(w->window_number);
SetDParam(0, w->window_number);
DrawWindowWidgets(w);
if (i->accepts_cargo[0] != CT_INVALID) {
+ StringID str;
+
SetDParam(0, _cargoc.names_s[i->accepts_cargo[0]]);
str = STR_4827_REQUIRES;
if (i->accepts_cargo[1] != CT_INVALID) {
SetDParam(1, _cargoc.names_s[i->accepts_cargo[1]]);
- str++;
+ str = STR_4828_REQUIRES;
if (i->accepts_cargo[2] != CT_INVALID) {
SetDParam(2, _cargoc.names_s[i->accepts_cargo[2]]);
- str++;
+ str = STR_4829_REQUIRES;
}
}
DrawString(2, 107, str, 0);
@@ -442,17 +442,14 @@ static const WindowDesc _industry_view_desc = {
void ShowIndustryViewWindow(int industry)
{
- Window *w;
- Industry *i;
+ Window* w = AllocateWindowDescFront(&_industry_view_desc, industry);
- w = AllocateWindowDescFront(&_industry_view_desc, industry);
- if (w) {
+ if (w != NULL) {
w->flags4 |= WF_DISABLE_VP_SCROLL;
WP(w,vp2_d).data_1 = 0;
WP(w,vp2_d).data_2 = 0;
WP(w,vp2_d).data_3 = 0;
- i = GetIndustry(w->window_number);
- AssignWindowViewport(w, 3, 17, 0xFE, 0x56, i->xy + TileDiffXY(1, 1), 1);
+ AssignWindowViewport(w, 3, 17, 0xFE, 0x56, GetIndustry(w->window_number)->xy + TileDiffXY(1, 1), 1);
}
}
@@ -550,8 +547,7 @@ static void MakeSortedIndustryList(void)
error("Could not allocate memory for the industry-sorting-list");
FOR_ALL_INDUSTRIES(i) {
- if (i->xy)
- _industry_sort[n++] = i->index;
+ if (i->xy != 0) _industry_sort[n++] = i->index;
}
_num_industry_sort = n;
_last_industry_idx = 0xFFFF; // used for "cache"
@@ -568,7 +564,6 @@ static void IndustryDirectoryWndProc(Window *w, WindowEvent *e)
case WE_PAINT: {
int n;
uint p;
- Industry *i;
static const uint16 _indicator_positions[4] = {88, 187, 284, 387};
if (_industry_sort_dirty) {
@@ -585,7 +580,8 @@ static void IndustryDirectoryWndProc(Window *w, WindowEvent *e)
n = 0;
while (p < _num_industry_sort) {
- i = GetIndustry(_industry_sort[p]);
+ const Industry* i = GetIndustry(_industry_sort[p]);
+
SetDParam(0, i->index);
if (i->produced_cargo[0] != CT_INVALID) {
SetDParam(1, _cargoc.names_long[i->produced_cargo[0]]);
@@ -638,14 +634,11 @@ static void IndustryDirectoryWndProc(Window *w, WindowEvent *e)
case 8: {
int y = (e->click.pt.y - 28) / 10;
uint16 p;
- Industry *c;
- if (!IS_INT_INSIDE(y, 0, w->vscroll.cap))
- return;
+ if (!IS_INT_INSIDE(y, 0, w->vscroll.cap)) return;
p = y + w->vscroll.pos;
if (p < _num_industry_sort) {
- c = GetIndustry(_industry_sort[p]);
- ScrollMainWindowToTile(c->xy);
+ ScrollMainWindowToTile(GetIndustry(_industry_sort[p])->xy);
}
} break;
}
@@ -674,11 +667,9 @@ static const WindowDesc _industry_directory_desc = {
void ShowIndustryDirectory(void)
{
- /* Industry List */
- Window *w;
+ Window* w = AllocateWindowDescFront(&_industry_directory_desc, 0);
- w = AllocateWindowDescFront(&_industry_directory_desc, 0);
- if (w) {
+ if (w != NULL) {
w->vscroll.cap = 16;
w->resize.height = w->height - 6 * 10; // minimum 10 items
w->resize.step_height = 10;
diff --git a/misc.c b/misc.c
index d5c9025c4..615acd0fb 100644
--- a/misc.c
+++ b/misc.c
@@ -78,7 +78,9 @@ uint InteractiveRandomRange(uint max)
void SetDate(uint date)
{
YearMonthDay ymd;
- ConvertDayToYMD(&ymd, _date = date);
+
+ _date = date;
+ ConvertDayToYMD(&ymd, date);
_cur_year = ymd.year;
_cur_month = ymd.month;
#ifdef ENABLE_NETWORK
@@ -186,8 +188,6 @@ void InitializeGame(int mode, uint size_x, uint size_y)
void GenerateWorld(int mode, uint size_x, uint size_y)
{
- int i;
-
// Make sure everything is done via OWNER_NONE
_current_player = OWNER_NONE;
@@ -223,7 +223,9 @@ void GenerateWorld(int mode, uint size_x, uint size_y)
// No need to run the tile loop in the scenario editor.
if (mode != GW_EMPTY) {
- for (i = 0x500; i != 0; i--) RunTileLoop();
+ uint i;
+
+ for (i = 0; i < 0x500; i++) RunTileLoop();
}
ResetObjectToPlace();
@@ -410,7 +412,7 @@ typedef struct LandscapePredefVar {
void InitializeLandscapeVariables(bool only_constants)
{
const LandscapePredefVar *lpd;
- int i;
+ uint i;
StringID str;
lpd = &_landscape_predef_var[_opt.landscape];
@@ -487,7 +489,8 @@ static const uint16 _autosave_months[] = {
*/
static void RunVehicleDayProc(uint daytick)
{
- uint i, total = _vehicle_pool.total_items;
+ uint total = _vehicle_pool.total_items;
+ uint i;
for (i = daytick; i < total; i += DAY_TICKS) {
Vehicle* v = GetVehicle(i);
@@ -976,13 +979,13 @@ static void Save_CHTS(void)
static void Load_CHTS(void)
{
- Cheat* cht = (Cheat*) &_cheats;
+ Cheat* cht = (Cheat*)&_cheats;
+ uint count = SlGetFieldLength() / 2;
+ uint i;
- uint count = SlGetFieldLength()/2;
- for (; count; count--, cht++)
- {
- cht->been_used = (byte)SlReadByte();
- cht->value = (byte)SlReadByte();
+ for (i = 0; i < count; i++) {
+ cht[i].been_used = SlReadByte();
+ cht[i].value = SlReadByte();
}
}
diff --git a/network_data.c b/network_data.c
index 827081a4e..ffb4bdddc 100644
--- a/network_data.c
+++ b/network_data.c
@@ -100,8 +100,8 @@ void NetworkSend_Packet(Packet *packet, NetworkClientState *cs)
packet->pos = 0;
packet->next = NULL;
- packet->buffer[0] = packet->size & 0xFF;
- packet->buffer[1] = packet->size >> 8;
+ packet->buffer[0] = GB(packet->size, 0, 8);
+ packet->buffer[1] = GB(packet->size, 8, 8);
// Locate last packet buffered for the client
p = cs->packet_queue;
diff --git a/openttd.c b/openttd.c
index 0649ab55a..6a50ce66c 100644
--- a/openttd.c
+++ b/openttd.c
@@ -657,7 +657,7 @@ static void StartScenario(void)
}
_opt_ptr = &_opt;
- memcpy(&_opt_ptr->diff, &_opt_newgame.diff, sizeof(GameDifficulty));
+ memcpy(&_opt_ptr->diff, &_opt_newgame.diff, sizeof(_opt_ptr->diff));
_opt.diff_level = _opt_newgame.diff_level;
// Inititalize data
@@ -731,7 +731,7 @@ void SwitchMode(int new_mode)
case SM_NEWGAME: /* New Game --> 'Random game' */
#ifdef ENABLE_NETWORK
if (_network_server) {
- snprintf(_network_game_info.map_name, NETWORK_NAME_LENGTH, "Random Map");
+ snprintf(_network_game_info.map_name, lengthof(_network_game_info.map_name), "Random Map");
}
#endif /* ENABLE_NETWORK */
MakeNewGame();
@@ -740,7 +740,7 @@ void SwitchMode(int new_mode)
case SM_START_SCENARIO: /* New Game --> Choose one of the preset scenarios */
#ifdef ENABLE_NETWORK
if (_network_server) {
- snprintf(_network_game_info.map_name, NETWORK_NAME_LENGTH, "%s (Loaded scenario)", _file_to_saveload.title);
+ snprintf(_network_game_info.map_name, lengthof(_network_game_info.map_name), "%s (Loaded scenario)", _file_to_saveload.title);
}
#endif /* ENABLE_NETWORK */
StartScenario();
@@ -757,7 +757,7 @@ void SwitchMode(int new_mode)
DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // decrease pause counter (was increased from opening load dialog)
#ifdef ENABLE_NETWORK
if (_network_server) {
- snprintf(_network_game_info.map_name, NETWORK_NAME_LENGTH, "%s (Loaded game)", _file_to_saveload.title);
+ snprintf(_network_game_info.map_name, lengthof(_network_game_info.map_name), "%s (Loaded game)", _file_to_saveload.title);
}
#endif /* ENABLE_NETWORK */
}
diff --git a/order_cmd.c b/order_cmd.c
index 5ab21ce76..07433dce7 100644
--- a/order_cmd.c
+++ b/order_cmd.c
@@ -366,8 +366,7 @@ int32 CmdInsertOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
}
}
- u = GetFirstVehicleFromSharedList(v);
- while (u != NULL) {
+ for (u = GetFirstVehicleFromSharedList(v); u != NULL; u = u->next_shared) {
/* Increase amount of orders */
u->num_orders++;
@@ -386,8 +385,6 @@ int32 CmdInsertOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
}
/* Update any possible open window of the vehicle */
InvalidateVehicleOrder(u);
-
- u = u->next_shared;
}
/* Make sure to rebuild the whole list */
@@ -454,8 +451,7 @@ int32 CmdDeleteOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
order->type = OT_NOTHING;
order->next = NULL;
- u = GetFirstVehicleFromSharedList(v);
- while (u != NULL) {
+ for (u = GetFirstVehicleFromSharedList(v); u != NULL; u = u->next_shared) {
u->num_orders--;
if (sel_ord < u->cur_order_index)
@@ -476,8 +472,6 @@ int32 CmdDeleteOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
/* Update any possible open window of the vehicle */
InvalidateVehicleOrder(u);
-
- u = u->next_shared;
}
RebuildVehicleLists();
@@ -579,14 +573,15 @@ int32 CmdModifyOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
/* Update the windows and full load flags, also for vehicles that share the same order list */
{
- Vehicle *u = GetFirstVehicleFromSharedList(v);
- while (u != NULL) {
+ Vehicle* u;
+
+ for (u = GetFirstVehicleFromSharedList(v); u != NULL; u = u->next_shared) {
/* toggle u->current_order "Full load" flag if it changed */
if (sel_ord == u->cur_order_index &&
- HASBIT(u->current_order.flags, OFB_FULL_LOAD) != HASBIT(order->flags, OFB_FULL_LOAD))
+ HASBIT(u->current_order.flags, OFB_FULL_LOAD) != HASBIT(order->flags, OFB_FULL_LOAD)) {
TOGGLEBIT(u->current_order.flags, OFB_FULL_LOAD);
+ }
InvalidateVehicleOrder(u);
- u = u->next_shared;
}
}
}
@@ -632,11 +627,10 @@ int32 CmdCloneOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
/* Is the vehicle already in the shared list? */
{
- Vehicle *u = GetFirstVehicleFromSharedList(src);
- while (u != NULL) {
- if (u == dst)
- return CMD_ERROR;
- u = u->next_shared;
+ const Vehicle* u;
+
+ for (u = GetFirstVehicleFromSharedList(src); u != NULL; u = u->next_shared) {
+ if (u == dst) return CMD_ERROR;
}
}
diff --git a/rail.h b/rail.h
index c6700eb0e..9938bdb7f 100644
--- a/rail.h
+++ b/rail.h
@@ -635,9 +635,9 @@ static inline bool TracksOverlap(TrackBits bits)
/* We know that there are at least two tracks present. When there are more
* than 2 tracks, they will surely overlap. When there are two, they will
* always overlap unless they are lower & upper or right & left. */
- if ((bits == (TRACK_BIT_UPPER|TRACK_BIT_LOWER)) || (bits == (TRACK_BIT_LEFT | TRACK_BIT_RIGHT)))
- return false;
- return true;
+ return
+ bits != (TRACK_BIT_UPPER | TRACK_BIT_LOWER) &&
+ bits != (TRACK_BIT_LEFT | TRACK_BIT_RIGHT);
}
void DrawTrainDepotSprite(int x, int y, int image, RailType railtype);
diff --git a/rail_cmd.c b/rail_cmd.c
index f40551d49..60c49e332 100644
--- a/rail_cmd.c
+++ b/rail_cmd.c
@@ -1469,10 +1469,11 @@ static void DrawTile_Track(TileInfo *ti)
DrawGroundSprite(image);
foreach_draw_tile_seq(seq, cust->seq) {
- uint32 image = seq->image + relocation;
- DrawSpecialBuilding(image, 0, ti,
- seq->delta_x, seq->delta_y, seq->delta_z,
- seq->width, seq->height, seq->unk);
+ DrawSpecialBuilding(
+ seq->image + relocation, 0, ti,
+ seq->delta_x, seq->delta_y, seq->delta_z,
+ seq->width, seq->height, seq->unk
+ );
}
return;
}
diff --git a/road_cmd.c b/road_cmd.c
index 85a029585..1c8952cd3 100644
--- a/road_cmd.c
+++ b/road_cmd.c
@@ -1112,9 +1112,8 @@ static const StringID _road_tile_strings[] = {
static void GetTileDesc_Road(TileIndex tile, TileDesc *td)
{
- int i = (_m[tile].m5 >> 4);
- if (i == 0)
- i = GB(_m[tile].m4, 4, 3) + 3;
+ int i = GB(_m[tile].m5, 4, 4);
+ if (i == 0) i = GB(_m[tile].m4, 4, 3) + 3;
td->str = _road_tile_strings[i - 1];
td->owner = GetTileOwner(tile);
}
diff --git a/roadveh_cmd.c b/roadveh_cmd.c
index 510baa010..1b31bba22 100644
--- a/roadveh_cmd.c
+++ b/roadveh_cmd.c
@@ -66,13 +66,12 @@ int GetRoadVehImage(const Vehicle *v, byte direction)
if (is_custom_sprite(img)) {
image = GetCustomVehicleSprite(v, direction);
- if (image) return image;
+ if (image != 0) return image;
img = orig_road_vehicle_info[v->engine_type - ROAD_ENGINES_INDEX].image_index;
}
image = direction + _roadveh_images[img];
- if (v->cargo_count >= (v->cargo_cap >> 1))
- image += _roadveh_full_adder[img];
+ if (v->cargo_count >= v->cargo_cap / 2) image += _roadveh_full_adder[img];
return image;
}
@@ -509,12 +508,12 @@ static void RoadVehIsCrashed(Vehicle *v)
static void *EnumCheckRoadVehCrashTrain(Vehicle *v, Vehicle *u)
{
- if (v->type != VEH_Train ||
- myabs(v->z_pos - u->z_pos) > 6 ||
- myabs(v->x_pos - u->x_pos) > 4 ||
- myabs(v->y_pos - u->y_pos) > 4)
- return NULL;
- return v;
+ return
+ v->type == VEH_Train &&
+ myabs(v->z_pos - u->z_pos) <= 6 &&
+ myabs(v->x_pos - u->x_pos) <= 4 &&
+ myabs(v->y_pos - u->y_pos) <= 4 ?
+ v : NULL;
}
static void RoadVehCrash(Vehicle *v)
@@ -527,7 +526,7 @@ static void RoadVehCrash(Vehicle *v)
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
pass = 1;
- if (v->cargo_type == 0) pass += v->cargo_count;
+ if (v->cargo_type == CT_PASSENGERS) pass += v->cargo_count;
v->cargo_count = 0;
SetDParam(0, pass);
@@ -573,13 +572,12 @@ static void HandleBrokenRoadVeh(Vehicle *v)
if (!(v->vehstatus & VS_HIDDEN)) {
Vehicle *u = CreateEffectVehicleRel(v, 4, 4, 5, EV_BREAKDOWN_SMOKE);
- if (u)
- u->u.special.unk0 = v->breakdown_delay * 2;
+ if (u != NULL) u->u.special.unk0 = v->breakdown_delay * 2;
}
}
- if (!(v->tick_counter & 1)) {
- if (!--v->breakdown_delay) {
+ if ((v->tick_counter & 1) == 0) {
+ if (--v->breakdown_delay == 0) {
v->breakdown_ctr = 0;
InvalidateWindow(WC_VEHICLE_VIEW, v->index);
}
@@ -1643,7 +1641,7 @@ void OnNewDay_RoadVeh(Vehicle *v)
}
// best_stop now contains the best stop we found.
- if (best_stop) {
+ if (best_stop != NULL) {
int slot;
// Find a free slot in this stop. We know that at least one is free.
assert(best_stop->slot[0] == INVALID_SLOT || best_stop->slot[1] == INVALID_SLOT);
@@ -1654,7 +1652,7 @@ void OnNewDay_RoadVeh(Vehicle *v)
v->u.road.slot_age = -5;
v->u.road.slotindex = slot;
DEBUG(ms, 1) ("Multistop: Slot %d at 0x%x assigned to vehicle %d (0x%x)", slot, best_stop->xy, v->unitnumber, v->tile);
- } else if (first_stop) {
+ } else if (first_stop != NULL) {
//now we couldn't assign a slot for one reason or another.
//so we just go towards the first station
DEBUG(ms, 1) ("Multistop: No free slot found for vehicle %d, going to default station", v->unitnumber);
diff --git a/smallmap_gui.c b/smallmap_gui.c
index 6680886c1..03f99eaa3 100644
--- a/smallmap_gui.c
+++ b/smallmap_gui.c
@@ -347,12 +347,10 @@ static inline TileType GetEffectiveTileType(TileIndex tile)
if (t == MP_TUNNELBRIDGE) {
t = _m[tile].m5;
if ((t & 0x80) == 0) t >>= 1;
- if ((t & 6) == 0) {
- t = MP_RAILWAY;
- } else if ((t & 6) == 2) {
- t = MP_STREET;
- } else {
- t = MP_WATER;
+ switch (t & 0x06) {
+ case 0x00: t = MP_RAILWAY; break;
+ case 0x02: t = MP_STREET; break;
+ default: t = MP_WATER; break;
}
}
return t;
@@ -642,12 +640,10 @@ static void DrawSmallMap(DrawPixelInfo *dpi, Window *w, int type, bool show_town
y = 0;
for (;;) {
- uint32 mask;
+ uint32 mask = 0xFFFFFFFF;
int reps;
int t;
- mask = 0xFFFFFFFF;
-
/* distance from left edge */
if (x < 0) {
if (x < -3) goto skip_column;
@@ -895,7 +891,7 @@ void ShowSmallMap(void)
int x,y;
w = AllocateWindowDescFront(&_smallmap_desc, 0);
- if (w) {
+ if (w != NULL) {
w->click_state = ((1<<5) << _smallmap_type) | (_smallmap_show_towns << 12);
w->resize.width = 350;
w->resize.height = 250;
@@ -993,12 +989,10 @@ void ShowExtraViewPortWindow(void)
int i = 0;
// find next free window number for extra viewport
- while (FindWindowById(WC_EXTRA_VIEW_PORT, i) ) {
- i++;
- }
+ while (FindWindowById(WC_EXTRA_VIEW_PORT, i) != NULL) i++;
w = AllocateWindowDescFront(&_extra_view_port_desc, i);
- if (w) {
+ if (w != NULL) {
int x, y;
// the main window with the main view
v = FindWindowById(WC_MAIN_WINDOW, 0);
diff --git a/sound.c b/sound.c
index d1492044e..a0fab3655 100644
--- a/sound.c
+++ b/sound.c
@@ -102,7 +102,7 @@ static void OpenBankFile(const char *filename)
static bool SetBankSource(MixerChannel *mc, uint bank)
{
- FileEntry* fe;
+ const FileEntry* fe;
int8* mem;
uint i;
diff --git a/station_cmd.c b/station_cmd.c
index 942a93cdc..ba61b8f4e 100644
--- a/station_cmd.c
+++ b/station_cmd.c
@@ -1325,7 +1325,7 @@ int32 CmdBuildRoadStop(int x, int y, uint32 flags, uint32 p1, uint32 p2)
/* Find a station close to us */
if (st == NULL) {
st = GetClosestStationFromTile(tile, 8, _current_player);
- if (st != NULL && st->facilities) st = NULL;
+ if (st != NULL && st->facilities != 0) st = NULL;
}
//give us a road stop in the list, and check if something went wrong
@@ -1334,7 +1334,8 @@ int32 CmdBuildRoadStop(int x, int y, uint32 flags, uint32 p1, uint32 p2)
return_cmd_error(type ? STR_3008B_TOO_MANY_TRUCK_STOPS : STR_3008A_TOO_MANY_BUS_STOPS);
}
- if (st != NULL && GetNumRoadStops(st, RS_BUS) + GetNumRoadStops(st, RS_TRUCK) >= ROAD_STOP_LIMIT) {
+ if (st != NULL &&
+ GetNumRoadStops(st, RS_BUS) + GetNumRoadStops(st, RS_TRUCK) >= ROAD_STOP_LIMIT) {
return_cmd_error(type ? STR_3008B_TOO_MANY_TRUCK_STOPS : STR_3008A_TOO_MANY_BUS_STOPS);
}
@@ -2172,19 +2173,18 @@ static const byte _enter_station_speedtable[12] = {
static uint32 VehicleEnter_Station(Vehicle *v, TileIndex tile, int x, int y)
{
- StationID station_id;
- byte dir;
-
if (v->type == VEH_Train) {
if (IS_BYTE_INSIDE(_m[tile].m5, 0, 8) && IsFrontEngine(v) &&
!IsCompatibleTrainStationTile(tile + TileOffsByDir(v->direction >> 1), tile)) {
+ StationID station_id = _m[tile].m2;
- station_id = _m[tile].m2;
if ((!(v->current_order.flags & OF_NON_STOP) && !_patches.new_nonstop) ||
(v->current_order.type == OT_GOTO_STATION && v->current_order.station == station_id)) {
if (!(_patches.new_nonstop && v->current_order.flags & OF_NON_STOP) &&
v->current_order.type != OT_LEAVESTATION &&
v->last_station_visited != station_id) {
+ byte dir;
+
x &= 0xF;
y &= 0xF;
diff --git a/table/tree_land.h b/table/tree_land.h
index d94ef1be4..9d68681d6 100644
--- a/table/tree_land.h
+++ b/table/tree_land.h
@@ -3,11 +3,11 @@
#ifndef TREE_LAND_H
#define TREE_LAND_H
-static const SpriteID _tree_sprites_1[4] = {
- 0x118D,
- 0x11A0,
- 0x11B3,
- 0x11C6,
+static const SpriteID _tree_sprites_1[] = {
+ SPR_FLAT_1_QUART_SNOWY_TILE,
+ SPR_FLAT_2_QUART_SNOWY_TILE,
+ SPR_FLAT_3_QUART_SNOWY_TILE,
+ SPR_FLAT_SNOWY_TILE
};
static const byte _tree_base_by_landscape[4] = {0, 12, 20, 32};
diff --git a/train_cmd.c b/train_cmd.c
index 3b0347a7a..045b7d478 100644
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -44,9 +44,7 @@ static void TrainCargoChanged(Vehicle* v)
for (u = v; u != NULL; u = u->next) {
const RailVehicleInfo *rvi = RailVehInfo(u->engine_type);
- uint16 vweight = 0;
-
- vweight += (_cargoc.weights[u->cargo_type] * u->cargo_count) / 16;
+ uint16 vweight = (_cargoc.weights[u->cargo_type] * u->cargo_count) / 16;
// Vehicle weight is not added for articulated parts.
if (!IsArticulatedPart(u)) {
diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c
index bcec4f093..8178d162a 100644
--- a/tunnelbridge_cmd.c
+++ b/tunnelbridge_cmd.c
@@ -1466,12 +1466,12 @@ static const byte _tunnel_fractcoord_7[4] = {0x52, 0x85, 0x96, 0x49};
static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y)
{
- int z;
int dir, vdir;
- byte fc;
if (GB(_m[tile].m5, 4, 4) == 0) {
- z = GetSlopeZ(x, y) - v->z_pos;
+ int z = GetSlopeZ(x, y) - v->z_pos;
+ byte fc;
+
if (myabs(z) > 2) return 8;
if (v->type == VEH_Train) {
diff --git a/vehicle_gui.c b/vehicle_gui.c
index 407287398..505630c8e 100644
--- a/vehicle_gui.c
+++ b/vehicle_gui.c
@@ -981,18 +981,20 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
byte click_side = 1;
switch (e->click.widget) {
- case 12: {
- WP(w, replaceveh_d).wagon_btnstate = !(WP(w, replaceveh_d).wagon_btnstate);
- SetWindowDirty(w);
- break;
- }
- case 14: case 15: { /* Select sorting criteria dropdown menu */
+ case 12:
+ WP(w, replaceveh_d).wagon_btnstate = !(WP(w, replaceveh_d).wagon_btnstate);
+ SetWindowDirty(w);
+ break;
+
+ case 14:
+ case 15: /* Railtype selection dropdown menu */
ShowDropDownMenu(w, _rail_types_list, _railtype_selected_in_replace_gui, 15, 0, ~GetPlayer(_local_player)->avail_railtypes);
break;
- }
- case 17: { /* toggle renew_keep_length */
+
+ case 17: /* toggle renew_keep_length */
DoCommandP(0, 5, GetPlayer(_local_player)->renew_keep_length ? 0 : 1, NULL, CMD_REPLACE_VEHICLE);
- } break;
+ break;
+
case 4: { /* Start replacing */
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0];
EngineID veh_to = WP(w, replaceveh_d).sel_engine[1];
@@ -1012,29 +1014,32 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
click_scroll_pos = w->vscroll.pos;
click_scroll_cap = w->vscroll.cap;
click_side = 0;
+ /* FALL THROUGH */
+
case 9: {
uint i = (e->click.pt.y - 14) / w->resize.step_height;
if (i < click_scroll_cap) {
WP(w,replaceveh_d).sel_index[click_side] = i + click_scroll_pos;
SetWindowDirty(w);
}
- } break;
+ break;
+ }
}
+ break;
+ }
- } break;
-
- case WE_DROPDOWN_SELECT: { /* we have selected a dropdown item in the list */
+ case WE_DROPDOWN_SELECT: /* we have selected a dropdown item in the list */
_railtype_selected_in_replace_gui = e->dropdown.index;
SetWindowDirty(w);
- } break;
+ break;
- case WE_RESIZE: {
+ case WE_RESIZE:
w->vscroll.cap += e->sizing.diff.y / (int)w->resize.step_height;
w->vscroll2.cap += e->sizing.diff.y / (int)w->resize.step_height;
w->widget[7].unkA = (w->vscroll.cap << 8) + 1;
w->widget[9].unkA = (w->vscroll2.cap << 8) + 1;
- } break;
+ break;
}
}
diff --git a/water_cmd.c b/water_cmd.c
index 8825714f2..2187f917d 100644
--- a/water_cmd.c
+++ b/water_cmd.c
@@ -375,20 +375,28 @@ void DrawCanalWater(TileIndex tile)
if (!(wa & 8)) DrawGroundSprite(SPR_CANALS_BASE + 60);
// right corner
- if ((wa & 3) == 0) DrawGroundSprite(SPR_CANALS_BASE + 57 + 4);
- else if ((wa & 3) == 3 && !IsWateredTile(TILE_ADDXY(tile, -1, 1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 8);
+ switch (wa & 0x03) {
+ case 0: DrawGroundSprite(SPR_CANALS_BASE + 57 + 4); break;
+ case 3: if (!IsWateredTile(TILE_ADDXY(tile, -1, 1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 8); break;
+ }
// bottom corner
- if ((wa & 6) == 0) DrawGroundSprite(SPR_CANALS_BASE + 57 + 5);
- else if ((wa & 6) == 6 && !IsWateredTile(TILE_ADDXY(tile, 1, 1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 9);
+ switch (wa & 0x06) {
+ case 0: DrawGroundSprite(SPR_CANALS_BASE + 57 + 5); break;
+ case 6: if (!IsWateredTile(TILE_ADDXY(tile, 1, 1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 9); break;
+ }
// left corner
- if ((wa & 12) == 0) DrawGroundSprite(SPR_CANALS_BASE + 57 + 6);
- else if ((wa & 12) == 12 && !IsWateredTile(TILE_ADDXY(tile, 1, -1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 10);
+ switch (wa & 0x0C) {
+ case 0: DrawGroundSprite(SPR_CANALS_BASE + 57 + 6); break;
+ case 12: if (!IsWateredTile(TILE_ADDXY(tile, 1, -1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 10); break;
+ }
// upper corner
- if ((wa & 9) == 0) DrawGroundSprite(SPR_CANALS_BASE + 57 + 7);
- else if ((wa & 9) == 9 && !IsWateredTile(TILE_ADDXY(tile, -1, -1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 11);
+ switch (wa & 0x09) {
+ case 0: DrawGroundSprite(SPR_CANALS_BASE + 57 + 7); break;
+ case 9: if (!IsWateredTile(TILE_ADDXY(tile, -1, -1))) DrawGroundSprite(SPR_CANALS_BASE + 57 + 11); break;
+ }
}
typedef struct LocksDrawTileStruct {
@@ -403,12 +411,10 @@ static void DrawWaterStuff(const TileInfo *ti, const WaterDrawTileStruct *wdts,
uint32 palette, uint base
)
{
- uint32 image;
-
DrawGroundSprite(wdts++->image);
for (; wdts->delta_x != 0x80; wdts++) {
- image = wdts->image + base;
+ uint32 image = wdts->image + base;
if (_display_opt & DO_TRANS_BUILDINGS) {
MAKE_TRANSPARENT(image);
} else {
@@ -624,7 +630,6 @@ static void FloodVehicle(Vehicle *v)
// called from tunnelbridge_cmd
void TileLoop_Water(TileIndex tile)
{
- int i;
static const TileIndexDiffC _tile_loop_offs_array[][5] = {
// tile to mod shore? shore?
{{-1, 0}, {0, 0}, {0, 1}, {-1, 0}, {-1, 1}},
@@ -635,6 +640,8 @@ void TileLoop_Water(TileIndex tile)
if (IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1) &&
IS_INT_INSIDE(TileY(tile), 1, MapSizeY() - 3 + 1)) {
+ uint i;
+
for (i = 0; i != lengthof(_tile_loop_offs_array); i++) {
TileLoopWaterHelper(tile, _tile_loop_offs_array[i]);
}
diff --git a/window.c b/window.c
index 8a44832ff..69f7bb961 100644
--- a/window.c
+++ b/window.c
@@ -1144,8 +1144,8 @@ static bool HandleScrollbarScrolling(void)
static bool HandleViewportScroll(void)
{
Window *w;
- ViewPort *vp;
- int dx,dy, x, y, sub;
+ int dx;
+ int dy;
if (!_scrolling_viewport) return true;
@@ -1168,17 +1168,18 @@ stop_capt:;
}
if (w->window_class != WC_SMALLMAP) {
- vp = IsPtInWindowViewport(w, _cursor.pos.x, _cursor.pos.y);
+ ViewPort* vp = IsPtInWindowViewport(w, _cursor.pos.x, _cursor.pos.y);
+
if (vp == NULL)
goto stop_capt;
WP(w,vp_d).scrollpos_x += dx << vp->zoom;
WP(w,vp_d).scrollpos_y += dy << vp->zoom;
- _cursor.delta.x = _cursor.delta.y = 0;
- return false;
} else {
- // scroll the smallmap ?
+ int x;
+ int y;
+ int sub;
int hx;
int hy;
int hvx;
@@ -1233,11 +1234,12 @@ stop_capt:;
WP(w,smallmap_d).scroll_y = y;
WP(w,smallmap_d).subscroll = sub;
- _cursor.delta.x = _cursor.delta.y = 0;
-
SetWindowDirty(w);
- return false;
}
+
+ _cursor.delta.x = 0;
+ _cursor.delta.y = 0;
+ return false;
}
static Window *MaybeBringWindowToFront(Window *w)
@@ -1376,7 +1378,7 @@ static void MouseLoop(int click, int mousewheel)
w = FindWindowFromPt(x, y);
if (w == NULL || w->flags4 & WF_DISABLE_VP_SCROLL) return;
vp = IsPtInWindowViewport(w, x, y);
- if (vp) {
+ if (vp != NULL) {
x -= vp->left;
y -= vp->top;
//here allows scrolling in both x and y axis
@@ -1662,26 +1664,40 @@ void RelocateAllWindows(int neww, int newh)
IConsoleResize();
- if (w->window_class == WC_MAIN_TOOLBAR) {
- top = w->top;
- left = PositionMainToolbar(w); // changes toolbar orientation
- } else if (w->window_class == WC_SELECT_GAME || w->window_class == WC_GAME_OPTIONS || w->window_class == WC_NETWORK_WINDOW){
- top = (newh - w->height) >> 1;
- left = (neww - w->width) >> 1;
- } else if (w->window_class == WC_NEWS_WINDOW) {
- top = newh - w->height;
- left = (neww - w->width) >> 1;
- } else if (w->window_class == WC_STATUS_BAR) {
- top = newh - w->height;
- left = (neww - w->width) >> 1;
- } else if (w->window_class == WC_SEND_NETWORK_MSG) {
- top = (newh - 26); // 26 = height of status bar + height of chat bar
- left = (neww - w->width) >> 1;
- } else {
- left = w->left;
- if (left + (w->width>>1) >= neww) left = neww - w->width;
- top = w->top;
- if (top + (w->height>>1) >= newh) top = newh - w->height;
+ switch (w->window_class) {
+ case WC_MAIN_TOOLBAR:
+ top = w->top;
+ left = PositionMainToolbar(w); // changes toolbar orientation
+ break;
+
+ case WC_SELECT_GAME:
+ case WC_GAME_OPTIONS:
+ case WC_NETWORK_WINDOW:
+ top = (newh - w->height) >> 1;
+ left = (neww - w->width) >> 1;
+ break;
+
+ case WC_NEWS_WINDOW:
+ top = newh - w->height;
+ left = (neww - w->width) >> 1;
+ break;
+
+ case WC_STATUS_BAR:
+ top = newh - w->height;
+ left = (neww - w->width) >> 1;
+ break;
+
+ case WC_SEND_NETWORK_MSG:
+ top = (newh - 26); // 26 = height of status bar + height of chat bar
+ left = (neww - w->width) >> 1;
+ break;
+
+ default:
+ left = w->left;
+ if (left + (w->width >> 1) >= neww) left = neww - w->width;
+ top = w->top;
+ if (top + (w->height >> 1) >= newh) top = newh - w->height;
+ break;
}
if (w->viewport != NULL) {