(svn r3564) Several smaller changes:
authortron
Mon, 06 Feb 2006 09:18:04 +0000
changeset 2989 99c95a3ebcaa
parent 2988 032feb8d9d8a
child 2990 352b4590ee1c
(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
ai/default/default.c
aircraft_cmd.c
clear_cmd.c
disaster_cmd.c
economy.c
industry_gui.c
misc.c
network_data.c
openttd.c
order_cmd.c
rail.h
rail_cmd.c
road_cmd.c
roadveh_cmd.c
smallmap_gui.c
sound.c
station_cmd.c
table/tree_land.h
train_cmd.c
tunnelbridge_cmd.c
vehicle_gui.c
water_cmd.c
window.c
--- a/ai/default/default.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/ai/default/default.c	Mon Feb 06 09:18:04 2006 +0000
@@ -2778,8 +2778,7 @@
 	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;
--- a/aircraft_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/aircraft_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -98,7 +98,7 @@
 	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];
--- a/clear_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/clear_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -637,10 +637,9 @@
 {
 	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)) {
--- a/disaster_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/disaster_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -898,10 +898,11 @@
 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);
--- a/economy.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/economy.c	Mon Feb 06 09:18:04 2006 +0000
@@ -346,14 +346,12 @@
 					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 @@
 			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 @@
 
 	// 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 @@
 	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 @@
 
 		/* 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
--- a/industry_gui.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/industry_gui.c	Mon Feb 06 09:18:04 2006 +0000
@@ -280,22 +280,22 @@
 
 	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 @@
 
 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 @@
 		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 @@
 	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 @@
 		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 @@
 		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 @@
 
 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;
--- a/misc.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/misc.c	Mon Feb 06 09:18:04 2006 +0000
@@ -78,7 +78,9 @@
 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 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 @@
 
 	// 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 @@
 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 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 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();
 	}
 }
 
--- a/network_data.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/network_data.c	Mon Feb 06 09:18:04 2006 +0000
@@ -100,8 +100,8 @@
 	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;
--- a/openttd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/openttd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -657,7 +657,7 @@
 	}
 
 	_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 @@
 	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 @@
 	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 @@
 			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 */
 		}
--- a/order_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/order_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -366,8 +366,7 @@
 			}
 		}
 
-		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 @@
 			}
 			/* 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 @@
 		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 @@
 
 			/* Update any possible open window of the vehicle */
 			InvalidateVehicleOrder(u);
-
-			u = u->next_shared;
 		}
 
 		RebuildVehicleLists();
@@ -579,14 +573,15 @@
 
 		/* 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 @@
 
 			/* 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;
 				}
 			}
 
--- a/rail.h	Mon Feb 06 08:43:05 2006 +0000
+++ b/rail.h	Mon Feb 06 09:18:04 2006 +0000
@@ -635,9 +635,9 @@
   /* 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);
--- a/rail_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/rail_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -1469,10 +1469,11 @@
 				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;
 			}
--- a/road_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/road_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -1112,9 +1112,8 @@
 
 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);
 }
--- a/roadveh_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/roadveh_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -66,13 +66,12 @@
 
 	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 *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 @@
 	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 @@
 
 		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 @@
 			}
 
 			// 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 @@
 				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);
--- a/smallmap_gui.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/smallmap_gui.c	Mon Feb 06 09:18:04 2006 +0000
@@ -347,12 +347,10 @@
 	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 @@
 	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 @@
 	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 @@
 	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);
--- a/sound.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/sound.c	Mon Feb 06 09:18:04 2006 +0000
@@ -102,7 +102,7 @@
 
 static bool SetBankSource(MixerChannel *mc, uint bank)
 {
-	FileEntry* fe;
+	const FileEntry* fe;
 	int8* mem;
 	uint i;
 
--- a/station_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/station_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -1325,7 +1325,7 @@
 	/* 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 @@
 		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 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)) {
-
-			station_id = _m[tile].m2;
+			StationID 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;
 
--- a/table/tree_land.h	Mon Feb 06 08:43:05 2006 +0000
+++ b/table/tree_land.h	Mon Feb 06 09:18:04 2006 +0000
@@ -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};
--- a/train_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/train_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -44,9 +44,7 @@
 
 	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)) {
--- a/tunnelbridge_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/tunnelbridge_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -1466,12 +1466,12 @@
 
 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) {
--- a/vehicle_gui.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/vehicle_gui.c	Mon Feb 06 09:18:04 2006 +0000
@@ -981,18 +981,20 @@
 			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 @@
 					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;
 	}
 }
 
--- a/water_cmd.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/water_cmd.c	Mon Feb 06 09:18:04 2006 +0000
@@ -375,20 +375,28 @@
 	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 @@
 	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 @@
 // 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 @@
 
 	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]);
 		}
--- a/window.c	Mon Feb 06 08:43:05 2006 +0000
+++ b/window.c	Mon Feb 06 09:18:04 2006 +0000
@@ -1144,8 +1144,8 @@
 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 @@
 	}
 
 	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 @@
 		WP(w,smallmap_d).scroll_y = y;
 		WP(w,smallmap_d).subscroll = sub;
 
-		_cursor.delta.x = _cursor.delta.y = 0;
+		SetWindowDirty(w);
+	}
 
-		SetWindowDirty(w);
-		return false;
-	}
+	_cursor.delta.x = 0;
+	_cursor.delta.y = 0;
+	return false;
 }
 
 static Window *MaybeBringWindowToFront(Window *w)
@@ -1376,7 +1378,7 @@
 			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 @@
 
 		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) {