diff options
-rw-r--r-- | ai/ai.c | 13 | ||||
-rw-r--r-- | ai/default/default.c | 137 | ||||
-rw-r--r-- | ai/trolly/build.c | 3 | ||||
-rw-r--r-- | aircraft_cmd.c | 228 | ||||
-rw-r--r-- | aircraft_gui.c | 105 | ||||
-rw-r--r-- | airport.c | 4 | ||||
-rw-r--r-- | airport_gui.c | 15 | ||||
-rw-r--r-- | bridge_gui.c | 3 | ||||
-rw-r--r-- | clear_cmd.c | 50 | ||||
-rw-r--r-- | debug.c | 9 | ||||
-rw-r--r-- | disaster_cmd.c | 37 | ||||
-rw-r--r-- | dock_gui.c | 48 | ||||
-rw-r--r-- | economy.c | 24 | ||||
-rw-r--r-- | engine.c | 11 | ||||
-rw-r--r-- | engine_gui.c | 22 | ||||
-rw-r--r-- | functions.h | 2 | ||||
-rw-r--r-- | gfx.c | 3 | ||||
-rw-r--r-- | gfxinit.c | 8 | ||||
-rw-r--r-- | graph_gui.c | 10 | ||||
-rw-r--r-- | industry_cmd.c | 303 | ||||
-rw-r--r-- | intro_gui.c | 50 | ||||
-rw-r--r-- | landscape.c | 10 | ||||
-rw-r--r-- | main_gui.c | 277 | ||||
-rw-r--r-- | misc_gui.c | 167 | ||||
-rw-r--r-- | music_gui.c | 67 | ||||
-rw-r--r-- | network.c | 2 | ||||
-rw-r--r-- | network_gui.c | 119 | ||||
-rw-r--r-- | news_gui.c | 63 | ||||
-rw-r--r-- | openttd.c | 138 | ||||
-rw-r--r-- | order_cmd.c | 35 | ||||
-rw-r--r-- | order_gui.c | 12 | ||||
-rw-r--r-- | player_gui.c | 10 | ||||
-rw-r--r-- | players.c | 28 | ||||
-rw-r--r-- | rail_cmd.c | 48 | ||||
-rw-r--r-- | rail_gui.c | 105 | ||||
-rw-r--r-- | road_cmd.c | 39 | ||||
-rw-r--r-- | road_gui.c | 34 | ||||
-rw-r--r-- | roadveh_gui.c | 18 | ||||
-rw-r--r-- | settings_gui.c | 70 | ||||
-rw-r--r-- | ship_cmd.c | 80 | ||||
-rw-r--r-- | ship_gui.c | 50 | ||||
-rw-r--r-- | station_cmd.c | 239 | ||||
-rw-r--r-- | station_gui.c | 80 | ||||
-rw-r--r-- | stdafx.h | 20 | ||||
-rw-r--r-- | strings.c | 13 | ||||
-rw-r--r-- | subsidy_gui.c | 49 | ||||
-rw-r--r-- | table/engines.h | 2 | ||||
-rw-r--r-- | table/sprites.h | 37 | ||||
-rw-r--r-- | terraform_gui.c | 15 | ||||
-rw-r--r-- | texteff.c | 27 | ||||
-rw-r--r-- | town_cmd.c | 128 | ||||
-rw-r--r-- | town_gui.c | 103 | ||||
-rw-r--r-- | train_cmd.c | 241 | ||||
-rw-r--r-- | train_gui.c | 9 | ||||
-rw-r--r-- | tree_cmd.c | 3 | ||||
-rw-r--r-- | tunnelbridge_cmd.c | 249 | ||||
-rw-r--r-- | vehicle.c | 117 | ||||
-rw-r--r-- | vehicle.h | 5 | ||||
-rw-r--r-- | vehicle_gui.c | 130 | ||||
-rw-r--r-- | water_cmd.c | 19 | ||||
-rw-r--r-- | widget.c | 91 | ||||
-rw-r--r-- | win32.c | 1 | ||||
-rw-r--r-- | window.c | 312 |
63 files changed, 1986 insertions, 2361 deletions
@@ -125,9 +125,9 @@ static void AI_RunTick(PlayerID player) Player *p = GetPlayer(player); _current_player = player; - if (_patches.ainew_active) + if (_patches.ainew_active) { AiNewDoGameLoop(p); - else { + } else { /* Enable all kind of cheats the old AI needs in order to operate correctly... */ _is_old_ai_player = true; AiDoGameLoop(p); @@ -143,8 +143,7 @@ static void AI_RunTick(PlayerID player) void AI_RunGameLoop(void) { /* Don't do anything if ai is disabled */ - if (!_ai.enabled) - return; + if (!_ai.enabled) return; /* New tick */ _ai.tick++; @@ -212,11 +211,9 @@ void AI_Initialize(void) */ void AI_Uninitialize(void) { - Player *p; + Player* p; FOR_ALL_PLAYERS(p) { - if (p->is_active && p->is_ai) { - AI_PlayerDied(p->index); - } + if (p->is_active && p->is_ai) AI_PlayerDied(p->index); } } diff --git a/ai/default/default.c b/ai/default/default.c index 1d763e483..b627c3904 100644 --- a/ai/default/default.c +++ b/ai/default/default.c @@ -278,11 +278,12 @@ static void AiHandleGotoDepot(Player *p, int cmd) static void AiRestoreVehicleOrders(Vehicle *v, BackuppedOrders *bak) { - int i; + uint i; - for (i = 0; bak->order[i].type != OT_NOTHING; i++) + for (i = 0; bak->order[i].type != OT_NOTHING; i++) { if (CmdFailed(DoCommandP(0, v->index + (i << 16), PackOrder(&bak->order[i]), NULL, CMD_INSERT_ORDER | CMD_NO_TEST_IF_IN_NETWORK))) break; + } } static void AiHandleReplaceTrain(Player *p) @@ -673,8 +674,7 @@ static void AiWantLongIndustryRoute(Player *p) return; } - if (!AiCheckIfRouteIsGood(p, &fr, 1)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 1)) return; // Fill the source field p->ai.dst.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.to); @@ -688,9 +688,9 @@ static void AiWantLongIndustryRoute(Player *p) p->ai.src.buildcmd_a = 0x24; p->ai.src.buildcmd_b = 0xFF; p->ai.src.direction = AiGetDirectionBetweenTiles( - p->ai.src.spec_tile, - p->ai.dst.spec_tile - ); + p->ai.src.spec_tile, + p->ai.dst.spec_tile + ); p->ai.src.cargo = fr.cargo | 0x80; // Fill the dest field @@ -703,17 +703,17 @@ static void AiWantLongIndustryRoute(Player *p) p->ai.dst.buildcmd_a = 0x34; p->ai.dst.buildcmd_b = 0xFF; p->ai.dst.direction = AiGetDirectionBetweenTiles( - p->ai.dst.spec_tile, - p->ai.src.spec_tile - ); + p->ai.dst.spec_tile, + p->ai.src.spec_tile + ); p->ai.dst.cargo = fr.cargo; // Fill middle field 1 p->ai.mid1.spec_tile = AiGetPctTileBetween( - p->ai.src.spec_tile, - p->ai.dst.spec_tile, - 0x55 - ); + p->ai.src.spec_tile, + p->ai.dst.spec_tile, + 0x55 + ); p->ai.mid1.use_tile = 0; p->ai.mid1.rand_rng = 6; p->ai.mid1.cur_building_rule = 0xFF; @@ -726,10 +726,10 @@ static void AiWantLongIndustryRoute(Player *p) // Fill middle field 2 p->ai.mid2.spec_tile = AiGetPctTileBetween( - p->ai.src.spec_tile, - p->ai.dst.spec_tile, - 0xAA - ); + p->ai.src.spec_tile, + p->ai.dst.spec_tile, + 0xAA + ); p->ai.mid2.use_tile = 0; p->ai.mid2.rand_rng = 6; p->ai.mid2.cur_building_rule = 0xFF; @@ -781,8 +781,7 @@ static void AiWantMediumIndustryRoute(Player *p) return; } - if (!AiCheckIfRouteIsGood(p, &fr, 1)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 1)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.from); @@ -854,8 +853,7 @@ static void AiWantShortIndustryRoute(Player *p) return; } - if (!AiCheckIfRouteIsGood(p, &fr, 1)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 1)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.from); @@ -928,8 +926,7 @@ static void AiWantMailRoute(Player *p) } fr.cargo = CT_MAIL; - if (!AiCheckIfRouteIsGood(p, &fr, 1)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 1)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.from); @@ -1034,8 +1031,7 @@ static void AiWantPassengerRoute(Player *p) } fr.cargo = CT_PASSENGERS; - if (!AiCheckIfRouteIsGood(p, &fr, 1)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 1)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.from); @@ -1047,9 +1043,9 @@ static void AiWantPassengerRoute(Player *p) p->ai.src.buildcmd_a = 0x10; p->ai.src.buildcmd_b = 0xFF; p->ai.src.direction = AiGetDirectionBetweenTiles( - GET_TOWN_OR_INDUSTRY_TILE(fr.from), - GET_TOWN_OR_INDUSTRY_TILE(fr.to) - ); + GET_TOWN_OR_INDUSTRY_TILE(fr.from), + GET_TOWN_OR_INDUSTRY_TILE(fr.to) + ); p->ai.src.cargo = fr.cargo; // Fill the dest field @@ -1062,9 +1058,9 @@ static void AiWantPassengerRoute(Player *p) p->ai.dst.buildcmd_a = 0xFF; p->ai.dst.buildcmd_b = 0xFF; p->ai.dst.direction = AiGetDirectionBetweenTiles( - GET_TOWN_OR_INDUSTRY_TILE(fr.to), - GET_TOWN_OR_INDUSTRY_TILE(fr.from) - ); + GET_TOWN_OR_INDUSTRY_TILE(fr.to), + GET_TOWN_OR_INDUSTRY_TILE(fr.from) + ); p->ai.dst.cargo = fr.cargo; // Fill common fields @@ -1126,8 +1122,7 @@ static void AiWantLongRoadIndustryRoute(Player *p) return; } - if (!AiCheckIfRouteIsGood(p, &fr, 2)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 2)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.from); @@ -1187,8 +1182,7 @@ static void AiWantMediumRoadIndustryRoute(Player *p) return; } - if (!AiCheckIfRouteIsGood(p, &fr, 2)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 2)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.from); @@ -1250,8 +1244,7 @@ static void AiWantLongRoadPassengerRoute(Player *p) fr.cargo = CT_PASSENGERS; - if (!AiCheckIfRouteIsGood(p, &fr, 2)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 2)) return; // Fill the source field p->ai.src.spec_tile = GET_TOWN_OR_INDUSTRY_TILE(fr.to); @@ -1309,8 +1302,7 @@ static void AiWantPassengerRouteInsideTown(Player *p) fr.cargo = CT_PASSENGERS; fr.from = fr.to = t; - if (!AiCheckIfRouteIsGood(p, &fr, 2)) - return; + if (!AiCheckIfRouteIsGood(p, &fr, 2)) return; // Fill the source field p->ai.src.spec_tile = t->xy; @@ -1360,7 +1352,6 @@ static void AiWantRoadRoute(Player *p) } else { AiWantPassengerRouteInsideTown(p); } - } static void AiWantPassengerAircraftRoute(Player *p) @@ -1615,14 +1606,13 @@ clear_town_stuff:; } } else if (p->mode == 2) { // Rail - if (IsTileType(c, MP_RAILWAY)) - return CMD_ERROR; + if (IsTileType(c, MP_RAILWAY)) return CMD_ERROR; j = p->attr; k = 0; // Build the rail - for(i=0; i!=6; i++,j>>=1) { + for (i = 0; i != 6; i++, j >>= 1) { if (j&1) { k = i; ret = DoCommandByTile(c, _cur_ai_player->ai.railtype_to_use, i, flag | DC_AUTO | DC_NO_WATER, CMD_BUILD_SINGLE_RAIL); @@ -1683,9 +1673,9 @@ static int AiBuildDefaultRailTrack(TileIndex tile, byte p0, byte p1, byte p2, by int i; const AiDefaultRailBlock *p; - for(i=0; (p = _default_rail_track_data[i]) != NULL; i++) { + for (i = 0; (p = _default_rail_track_data[i]) != NULL; i++) { if (p->p0 == p0 && p->p1 == p1 && p->p2 == p2 && p->p3 == p3 && - (p->dir == 0xFF || p->dir == dir || ((p->dir-1)&3) == dir)) { + (p->dir == 0xFF || p->dir == dir || ((p->dir - 1) & 3) == dir)) { *cost = AiDoBuildDefaultRailTrack(tile, p->data, DC_NO_TOWN_RATING); if (*cost != CMD_ERROR && AiCheckTrackResources(tile, p->data, cargo)) return i; @@ -1762,7 +1752,8 @@ static void AiDoTerraformLand(TileIndex tile, int dir, int unk, int mode) static void AiStateBuildDefaultRailBlocks(Player *p) { - int i, j; + uint i; + int j; AiBuildRec *aib; int rule; int32 cost; @@ -1823,8 +1814,7 @@ static void AiStateBuildDefaultRailBlocks(Player *p) aib = &p->ai.src; j = p->ai.num_build_rec; do { - if (aib->cur_building_rule == 255) - return; + if (aib->cur_building_rule == 255) return; } while (++aib,--j); // yep, all are done. switch state to the rail building state. @@ -1850,16 +1840,14 @@ typedef struct AiRailPathFindData { static bool AiEnumFollowTrack(TileIndex tile, AiRailPathFindData *a, int track, uint length, byte *state) { - if (a->flag) - return true; + if (a->flag) return true; if (length > 20 || tile == a->tile) { a->flag = true; return true; } - if (DistanceMax(tile, a->tile2) < 4) - a->count++; + if (DistanceMax(tile, a->tile2) < 4) a->count++; return false; } @@ -1867,6 +1855,7 @@ static bool AiEnumFollowTrack(TileIndex tile, AiRailPathFindData *a, int track, static bool AiDoFollowTrack(Player *p) { AiRailPathFindData arpfd; + arpfd.tile = p->ai.start_tile_a; arpfd.tile2 = p->ai.cur_tile_a; arpfd.flag = false; @@ -1909,26 +1898,29 @@ static bool AiIsTileBanned(const Player* p, TileIndex tile, byte val) { int i; - for(i=0; i!=p->ai.banned_tile_count; i++) - if (p->ai.banned_tiles[i] == tile && - p->ai.banned_val[i] == val) - return true; + for (i = 0; i != p->ai.banned_tile_count; i++) { + if (p->ai.banned_tiles[i] == tile && p->ai.banned_val[i] == val) { + return true; + } + } return false; } -static void AiBanTile(Player *p, TileIndex tile, byte val) { +static void AiBanTile(Player* p, TileIndex tile, byte val) +{ int i; - for(i=lengthof(p->ai.banned_tiles)-1; i!=0; i--) { - p->ai.banned_tiles[i] = p->ai.banned_tiles[i-1]; - p->ai.banned_val[i] = p->ai.banned_val[i-1]; + for (i = lengthof(p->ai.banned_tiles) - 1; i != 0; i--) { + p->ai.banned_tiles[i] = p->ai.banned_tiles[i - 1]; + p->ai.banned_val[i] = p->ai.banned_val[i - 1]; } p->ai.banned_tiles[0] = tile; p->ai.banned_val[0] = val; - if (p->ai.banned_tile_count != lengthof(p->ai.banned_tiles)) + if (p->ai.banned_tile_count != lengthof(p->ai.banned_tiles)) { p->ai.banned_tile_count++; + } } static void AiBuildRailRecursive(AiRailFinder *arf, TileIndex tile, int dir); @@ -3201,11 +3193,13 @@ static void AiStateBuildRoadVehicles(Player *p) loco_id = _new_roadveh_id; - for(i=0; p->ai.order_list_blocks[i] != 0xFF; i++) { - AiBuildRec *aib = (&p->ai.src) + p->ai.order_list_blocks[i]; - bool is_pass = (p->ai.cargo_type == CT_PASSENGERS || - p->ai.cargo_type == CT_MAIL || - (_opt.landscape==LT_NORMAL && p->ai.cargo_type == CT_VALUABLES)); + for (i = 0; p->ai.order_list_blocks[i] != 0xFF; i++) { + AiBuildRec* aib = &p->ai.src + p->ai.order_list_blocks[i]; + bool is_pass = ( + p->ai.cargo_type == CT_PASSENGERS || + p->ai.cargo_type == CT_MAIL || + (_opt.landscape == LT_NORMAL && p->ai.cargo_type == CT_VALUABLES) + ); Order order; order.type = OT_GOTO_STATION; @@ -3220,15 +3214,10 @@ static void AiStateBuildRoadVehicles(Player *p) } DoCommandByTile(0, loco_id, 0, DC_EXEC, CMD_START_STOP_ROADVEH); - DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); - if (p->ai.num_want_fullload != 0) - p->ai.num_want_fullload--; - - if (--p->ai.num_loco_to_build == 0) { - p->ai.state = AIS_0; - } + if (p->ai.num_want_fullload != 0) p->ai.num_want_fullload--; + if (--p->ai.num_loco_to_build == 0) p->ai.state = AIS_0; } static void AiStateDeleteRoadBlocks(Player *p) diff --git a/ai/trolly/build.c b/ai/trolly/build.c index bc173892c..96920dddb 100644 --- a/ai/trolly/build.c +++ b/ai/trolly/build.c @@ -250,8 +250,7 @@ int AiNew_Build_Vehicle(Player *p, TileIndex tile, byte flag) int i = AiNew_PickVehicle(p); if (i == -1) return CMD_ERROR; - if (p->ainew.tbt == AI_TRAIN) - return CMD_ERROR; + if (p->ainew.tbt == AI_TRAIN) return CMD_ERROR; return DoCommandByTile(tile, i, 0, flag, CMD_BUILD_ROAD_VEH); } diff --git a/aircraft_cmd.c b/aircraft_cmd.c index af45b88f9..23f06217c 100644 --- a/aircraft_cmd.c +++ b/aircraft_cmd.c @@ -155,8 +155,9 @@ int32 CmdBuildAircraft(int x, int y, uint32 flags, uint32 p1, uint32 p2) avi = AircraftVehInfo(p1); // allocate 2 or 3 vehicle structs, depending on type if (!AllocateVehicles(vl, (avi->subtype & 1) == 0 ? 3 : 2) || - IsOrderPoolFull()) - return_cmd_error(STR_00E1_TOO_MANY_VEHICLES_IN_GAME); + IsOrderPoolFull()) { + return_cmd_error(STR_00E1_TOO_MANY_VEHICLES_IN_GAME); + } unit_num = GetFreeUnitNumber(VEH_Aircraft); if (unit_num > _patches.max_aircraft) @@ -546,21 +547,15 @@ static void CheckIfAircraftNeedsService(Vehicle *v) { const Station* st; - if (_patches.servint_aircraft == 0) - return; - - if (!VehicleNeedsService(v)) - return; - - if (v->vehstatus & VS_STOPPED) - return; + if (_patches.servint_aircraft == 0) return; + if (!VehicleNeedsService(v)) return; + if (v->vehstatus & VS_STOPPED) return; if (v->current_order.type == OT_GOTO_DEPOT && v->current_order.flags & OF_HALT_IN_DEPOT) return; - if (_patches.gotodepot && VehicleHasDepotOrders(v)) - return; + if (_patches.gotodepot && VehicleHasDepotOrders(v)) return; st = GetStation(v->current_order.station); // only goto depot if the target airport has terminals (eg. it is airport) @@ -581,11 +576,9 @@ void OnNewDay_Aircraft(Vehicle *v) { int32 cost; - if (v->subtype > 2) - return; + if (v->subtype > 2) return; - if ((++v->day_counter & 7) == 0) - DecreaseVehicleValue(v); + if ((++v->day_counter & 7) == 0) DecreaseVehicleValue(v); CheckOrders(v->index, OC_INIT); @@ -593,8 +586,7 @@ void OnNewDay_Aircraft(Vehicle *v) AgeVehicle(v); CheckIfAircraftNeedsService(v); - if (v->vehstatus & VS_STOPPED) - return; + if (v->vehstatus & VS_STOPPED) return; cost = AircraftVehInfo(v->engine_type)->running_cost * _price.aircraft_running / 364; @@ -622,13 +614,12 @@ void AircraftYearlyLoop(void) static void AgeAircraftCargo(Vehicle *v) { - if (_age_cargo_skip_counter != 0) - return; + if (_age_cargo_skip_counter != 0) return; do { - if (v->cargo_days != 0xFF) - v->cargo_days++; - } while ( (v=v->next) != NULL ); + if (v->cargo_days != 0xFF) v->cargo_days++; + v = v->next; + } while (v != NULL); } static void HelicopterTickHandler(Vehicle *v) @@ -639,8 +630,7 @@ static void HelicopterTickHandler(Vehicle *v) u = v->next->next; - if (u->vehstatus & VS_HIDDEN) - return; + if (u->vehstatus & VS_HIDDEN) return; // if true, helicopter rotors do not rotate. This should only be the case if a helicopter is // loading/unloading at a terminal or stopped @@ -707,7 +697,8 @@ static void SetAircraftPosition(Vehicle *v, int x, int y, int z) VehiclePositionChanged(u); EndVehicleMove(u); - if ((u=u->next) != NULL) { + u = u->next; + if (u != NULL) { u->x_pos = x; u->y_pos = y; u->z_pos = z + 5; @@ -729,7 +720,8 @@ static void ServiceAircraft(Vehicle *v) u = v->next; u->vehstatus |= VS_HIDDEN; - if ((u=u->next) != NULL) { + u = u->next; + if (u != NULL) { u->vehstatus |= VS_HIDDEN; u->cur_speed = 0; } @@ -752,10 +744,10 @@ static bool UpdateAircraftSpeed(Vehicle *v) byte t; v->subspeed = (t=v->subspeed) + (byte)spd; - spd = min( v->cur_speed + (spd >> 8) + (v->subspeed < t), v->max_speed); + spd = min(v->cur_speed + (spd >> 8) + (v->subspeed < t), v->max_speed); // adjust speed for broken vehicles - if(v->vehstatus&VS_AIRCRAFT_BROKEN) spd = min(spd, 27); + if (v->vehstatus & VS_AIRCRAFT_BROKEN) spd = min(spd, 27); //updates statusbar only if speed have changed to save CPU time if (spd != v->cur_speed) { @@ -764,19 +756,15 @@ static bool UpdateAircraftSpeed(Vehicle *v) InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR); } - if (!(v->direction & 1)) { - spd = spd * 3 >> 2; - } + if (!(v->direction & 1)) spd = spd * 3 / 4; - if (spd == 0) - return false; + if (spd == 0) return false; - if ((byte)++spd == 0) - return true; + if ((byte)++spd == 0) return true; v->progress = (t = v->progress) - (byte)spd; - return (t < v->progress); + return t < v->progress; } // get Aircraft running altitude @@ -822,9 +810,7 @@ static bool AircraftController(Vehicle *v) // Make sure the rotors don't rotate too fast if (u->cur_speed > 32) { v->cur_speed = 0; - if (--u->cur_speed == 32) { - SndPlayVehicleFx(SND_18_HELICOPTER, v); - } + if (--u->cur_speed == 32) SndPlayVehicleFx(SND_18_HELICOPTER, v); } else { u->cur_speed = 32; if (UpdateAircraftSpeed(v)) { @@ -865,9 +851,8 @@ static bool AircraftController(Vehicle *v) u = v->next->next; // Increase speed of rotors. When speed is 80, we've landed. - if (u->cur_speed >= 80) - return true; - u->cur_speed+=4; + if (u->cur_speed >= 80) return true; + u->cur_speed += 4; } else if (v->z_pos > z) { SetAircraftPosition(v, v->x_pos, v->y_pos, v->z_pos-1); } else { @@ -886,10 +871,7 @@ static bool AircraftController(Vehicle *v) // At final pos? if (dist == 0) { - - // Clamp speed to 12. - if (v->cur_speed > 12) - v->cur_speed = 12; + if (v->cur_speed > 12) v->cur_speed = 12; // Change direction smoothly to final direction. dirdiff = amd->direction - v->direction; @@ -900,8 +882,7 @@ static bool AircraftController(Vehicle *v) return true; } - if (!UpdateAircraftSpeed(v)) - return false; + if (!UpdateAircraftSpeed(v)) return false; v->direction = (v->direction+((dirdiff&7)<5?1:-1)) & 7; v->cur_speed >>= 1; @@ -910,24 +891,17 @@ static bool AircraftController(Vehicle *v) return false; } - // Clamp speed? - if (!(amd->flag & AMED_NOSPDCLAMP) && v->cur_speed > 12) - v->cur_speed = 12; + if (!(amd->flag & AMED_NOSPDCLAMP) && v->cur_speed > 12) v->cur_speed = 12; - if (!UpdateAircraftSpeed(v)) - return false; + if (!UpdateAircraftSpeed(v)) return false; - // Decrease animation counter. - if (v->load_unload_time_rem != 0) - v->load_unload_time_rem--; + if (v->load_unload_time_rem != 0) v->load_unload_time_rem--; // Turn. Do it slowly if in the air. newdir = GetDirectionTowards(v, x + amd->x, y + amd->y); if (newdir != v->direction) { if (amd->flag & AMED_SLOWTURN) { - if (v->load_unload_time_rem == 0) { - v->load_unload_time_rem = 8; - } + if (v->load_unload_time_rem == 0) v->load_unload_time_rem = 8; v->direction = newdir; } else { v->cur_speed >>= 1; @@ -940,19 +914,15 @@ static bool AircraftController(Vehicle *v) v->tile = gp.new_tile; // If vehicle is in the air, use tile coordinate 0. - if (amd->flag & (AMED_TAKEOFF | AMED_SLOWTURN | AMED_LAND)) { - v->tile = 0; - } + if (amd->flag & (AMED_TAKEOFF | AMED_SLOWTURN | AMED_LAND)) v->tile = 0; // Adjust Z for land or takeoff? z = v->z_pos; if (amd->flag & AMED_TAKEOFF) { - z+=2; - // Determine running altitude + z += 2; maxz = GetAircraftFlyingAltitude(v); - if (z > maxz) - z = maxz; + if (z > maxz) z = maxz; } if (amd->flag & AMED_LAND) { @@ -969,7 +939,7 @@ static bool AircraftController(Vehicle *v) if (curz > z) { z++; } else { - int t = max(1, dist-4); + int t = max(1, dist - 4); z -= ((z - curz) + t - 1) / t; if (z < curz) z = curz; @@ -980,11 +950,13 @@ static bool AircraftController(Vehicle *v) if (amd->flag & AMED_BRAKE) { curz = GetSlopeZ(x, y) + 1; - if (z > curz) z--; - else if (z < curz) z++; + if (z > curz) { + z--; + } else if (z < curz) { + z++; + } - if (dist < 64 && v->cur_speed > 12) - v->cur_speed -= 4; + if (dist < 64 && v->cur_speed > 12) v->cur_speed -= 4; } SetAircraftPosition(v, gp.x, gp.y, z); @@ -1061,8 +1033,7 @@ static const int8 _aircraft_smoke_xy[16] = { static void HandleAircraftSmoke(Vehicle *v) { - if (!(v->vehstatus&VS_AIRCRAFT_BROKEN)) - return; + if (!(v->vehstatus & VS_AIRCRAFT_BROKEN)) return; if (v->cur_speed < 10) { v->vehstatus &= ~VS_AIRCRAFT_BROKEN; @@ -1098,8 +1069,7 @@ static void ProcessAircraftOrder(Vehicle *v) v->cur_order_index++; } - if (v->cur_order_index >= v->num_orders) - v->cur_order_index = 0; + if (v->cur_order_index >= v->num_orders) v->cur_order_index = 0; order = GetVehicleOrder(v, v->cur_order_index); @@ -1132,18 +1102,12 @@ static void ProcessAircraftOrder(Vehicle *v) static void HandleAircraftLoading(Vehicle *v, int mode) { - if (v->current_order.type == OT_NOTHING) - return; + if (v->current_order.type == OT_NOTHING) return; if (v->current_order.type != OT_DUMMY) { - if (v->current_order.type != OT_LOADING) - return; - - if (mode != 0) - return; - - if (--v->load_unload_time_rem) - return; + if (v->current_order.type != OT_LOADING) return; + if (mode != 0) return; + if (--v->load_unload_time_rem != 0) return; if (v->current_order.flags & OF_FULL_LOAD && CanFillVehicle(v)) { SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_INC); @@ -1155,8 +1119,7 @@ static void HandleAircraftLoading(Vehicle *v, int mode) Order b = v->current_order; v->current_order.type = OT_NOTHING; v->current_order.flags = 0; - if (!(b.flags & OF_NON_STOP)) - return; + if (!(b.flags & OF_NON_STOP)) return; } } v->cur_order_index++; @@ -1183,7 +1146,7 @@ static void CrashAirplane(Vehicle *v) v->cargo_count = 0; v->next->cargo_count = 0, st = GetStation(v->u.air.targetairport); - if(st->airport_tile==0) { + if (st->airport_tile == 0) { newsitem = STR_PLANE_CRASH_OUT_OF_FUEL; } else { SetDParam(1, st->index); @@ -1230,8 +1193,7 @@ static void AircraftEntersTerminal(Vehicle *v) Station *st; Order old_order; - if (v->current_order.type == OT_GOTO_DEPOT) - return; + if (v->current_order.type == OT_GOTO_DEPOT) return; st = GetStation(v->u.air.targetairport); v->last_station_visited = v->u.air.targetairport; @@ -1267,7 +1229,7 @@ static void AircraftEntersTerminal(Vehicle *v) InvalidateWindowClasses(WC_AIRCRAFT_LIST); } -static bool ValidateAircraftInHangar( uint data_a, uint data_b ) +static bool ValidateAircraftInHangar(uint data_a, uint data_b) { const Vehicle* v = GetVehicle(data_a); @@ -1348,7 +1310,8 @@ static void AircraftLeaveHangar(Vehicle *v) u->vehstatus &= ~VS_HIDDEN; // Rotor blades - if ((u=u->next) != NULL) { + u = u->next; + if (u != NULL) { u->vehstatus &= ~VS_HIDDEN; u->cur_speed = 80; } @@ -1452,10 +1415,11 @@ static void AircraftEventHandler_AtTerminal(Vehicle *v, const AirportFTAClass *A v->u.air.state = (v->subtype != 0) ? TAKEOFF : HELITAKEOFF; break; case OT_GOTO_DEPOT: // visit hangar for serivicing, sale, etc. - if (v->current_order.station == v->u.air.targetairport) + if (v->current_order.station == v->u.air.targetairport) { v->u.air.state = HANGAR; - else + } else { v->u.air.state = (v->subtype != 0) ? TAKEOFF : HELITAKEOFF; + } break; default: // orders have been deleted (no orders), goto depot and don't bother us v->current_order.type = OT_NOTHING; @@ -1498,8 +1462,10 @@ static void AircraftEventHandler_HeliTakeOff(Vehicle *v, const AirportFTAClass * AircraftNextAirportPos_and_Order(v); // check if the aircraft needs to be replaced or renewed and send it to a hangar if needed - if ((v->owner == _local_player && p->engine_replacement[v->engine_type] != INVALID_ENGINE) || - (v->owner == _local_player && p->engine_renew && v->age - v->max_age > (p->engine_renew_months * 30))) { + if (v->owner == _local_player && ( + p->engine_replacement[v->engine_type] != INVALID_ENGINE || + (p->engine_renew && v->age - v->max_age > p->engine_renew_months * 30) + )) { _current_player = _local_player; DoCommandP(v->tile, v->index, 1, NULL, CMD_SEND_AIRCRAFT_TO_HANGAR | CMD_SHOW_NO_ERROR); _current_player = OWNER_NONE; @@ -1519,9 +1485,9 @@ static void AircraftEventHandler_Flying(Vehicle *v, const AirportFTAClass *Airpo // all other airports --> all types of flying devices (ALL) // heliport/oilrig, etc --> no airplanes (HELICOPTERS_ONLY) // runway busy or not allowed to use this airstation, circle - if (! (v->subtype == Airport->acc_planes || - st->airport_tile == 0 || (st->owner != OWNER_NONE && st->owner != v->owner) )) { - + if (v->subtype != Airport->acc_planes && + st->airport_tile != 0 && + (st->owner == OWNER_NONE || st->owner == v->owner)) { // {32,FLYING,NOTHING_block,37}, {32,LANDING,N,33}, {32,HELILANDING,N,41}, // if it is an airplane, look for LANDING, for helicopter HELILANDING // it is possible to choose from multiple landing runways, so loop until a free one is found @@ -1636,10 +1602,10 @@ static AircraftStateHandler * const _aircraft_state_handlers[] = { static void AirportClearBlock(const Vehicle* v, const AirportFTAClass* Airport) { - Station *st; // we have left the previous block, and entered the new one. Free the previous block if (Airport->layout[v->u.air.previous_pos].block != Airport->layout[v->u.air.pos].block) { - st = GetStation(v->u.air.targetairport); + Station* st = GetStation(v->u.air.targetairport); + CLRBITS(st->airport_flags, Airport->layout[v->u.air.previous_pos].block); } } @@ -1689,10 +1655,10 @@ static bool AirportMove(Vehicle *v, const AirportFTAClass *Airport) // matches our heading do { if (v->u.air.state == current->heading || current->heading == TO_ALL) { - if (AirportSetBlocks(v, current, Airport)) { - v->u.air.pos = current->next_position; - } // move to next position - return retval; + if (AirportSetBlocks(v, current, Airport)) { + v->u.air.pos = current->next_position; + } // move to next position + return retval; } current = current->next_in_chain; } while (current != NULL); @@ -1731,16 +1697,15 @@ static bool AirportHasBlock(Vehicle *v, AirportFTA *current_pos, const AirportFT // returns true on success. Eg, next block was free and we have occupied it static bool AirportSetBlocks(Vehicle *v, AirportFTA *current_pos, const AirportFTAClass *Airport) { - Station *st; - uint32 airport_flags; - AirportFTA *current, *reference, *next; - next = &Airport->layout[current_pos->next_position]; - reference = &Airport->layout[v->u.air.pos]; + AirportFTA* next = &Airport->layout[current_pos->next_position]; + AirportFTA* reference = &Airport->layout[v->u.air.pos]; + AirportFTA* current; // if the next position is in another block, check it and wait until it is free if (Airport->layout[current_pos->position].block != next->block) { - airport_flags = next->block; - st = GetStation(v->u.air.targetairport); + uint32 airport_flags = next->block; + Station* st = GetStation(v->u.air.targetairport); + //search for all all elements in the list with the same state, and blocks != N // this means more blocks should be checked/set current = current_pos; @@ -1784,12 +1749,12 @@ static bool FreeTerminal(Vehicle *v, byte i, byte last_terminal) return false; } -static int GetNumTerminals(const AirportFTAClass *Airport) +static uint GetNumTerminals(const AirportFTAClass *Airport) { - int i, num = 0; + uint num = 0; + uint i; - for (i = Airport->terminals[0]; i > 0; i--) - num += Airport->terminals[i]; + for (i = Airport->terminals[0]; i > 0; i--) num += Airport->terminals[i]; return num; } @@ -1846,12 +1811,12 @@ static bool AirportFindFreeTerminal(Vehicle *v, const AirportFTAClass *Airport) return FreeTerminal(v, 0, GetNumTerminals(Airport)); } -static int GetNumHelipads(const AirportFTAClass *Airport) +static uint GetNumHelipads(const AirportFTAClass *Airport) { - int i, num = 0; + uint num = 0; + uint i; - for (i = Airport->helipads[0]; i > 0; i--) - num += Airport->helipads[i]; + for (i = Airport->helipads[0]; i > 0; i--) num += Airport->helipads[i]; return num; } @@ -1914,9 +1879,7 @@ static void AircraftEventHandler(Vehicle *v, int loop) return; } - /* exit if aircraft is stopped */ - if (v->vehstatus & VS_STOPPED) - return; + if (v->vehstatus & VS_STOPPED) return; /* aircraft is broken down? */ if (v->breakdown_ctr != 0) { @@ -1931,8 +1894,7 @@ static void AircraftEventHandler(Vehicle *v, int loop) ProcessAircraftOrder(v); HandleAircraftLoading(v, loop); - if (v->current_order.type >= OT_LOADING) - return; + if (v->current_order.type >= OT_LOADING) return; // pass the right airport structure to the functions // DEREF_STATION gets target airport (Station *st), its type is passed to GetAirport @@ -1944,24 +1906,22 @@ void Aircraft_Tick(Vehicle *v) { int i; - if (v->subtype > 2) - return; + if (v->subtype > 2) return; - if (v->subtype == 0) - HelicopterTickHandler(v); + if (v->subtype == 0) HelicopterTickHandler(v); AgeAircraftCargo(v); - for(i=0; i!=6; i++) { + for (i = 0; i != 6; i++) { AircraftEventHandler(v, i); if (v->type != VEH_Aircraft) // In case it was deleted break; } } -void UpdateOilRig( void ) +void UpdateOilRig(void) { - Station *st; + Station* st; FOR_ALL_STATIONS(st) { if (st->airport_type == 5) st->airport_type = AT_OILRIG; @@ -1987,7 +1947,7 @@ void UpdateOldAircraft(void) // skip those if (v_oldstyle->type == VEH_Aircraft && v_oldstyle->subtype <= 2) { // airplane in terminal stopped doesn't hurt anyone, so goto next - if ((v_oldstyle->vehstatus & VS_STOPPED) && (v_oldstyle->u.air.state == 0)) { + if (v_oldstyle->vehstatus & VS_STOPPED && v_oldstyle->u.air.state == 0) { v_oldstyle->u.air.state = HANGAR; continue; } diff --git a/aircraft_gui.c b/aircraft_gui.c index 8cd5c620a..970ea1673 100644 --- a/aircraft_gui.c +++ b/aircraft_gui.c @@ -65,13 +65,11 @@ static void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selectio { int image = GetAircraftImage(v, 6); uint32 ormod = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(v->owner)); - if (v->vehstatus & VS_CRASHED) - ormod = PALETTE_CRASH; - DrawSprite(image | ormod, x+25, y+10); - if (v->subtype == 0) - DrawSprite(SPR_ROTOR_STOPPED, x + 25, y + 5); + if (v->vehstatus & VS_CRASHED) ormod = PALETTE_CRASH; + DrawSprite(image | ormod, x + 25, y + 10); + if (v->subtype == 0) DrawSprite(SPR_ROTOR_STOPPED, x + 25, y + 5); if (v->index == selection) { - DrawFrameRect(x-1, y-1, x+58, y+21, 0xF, FR_BORDERONLY); + DrawFrameRect(x - 1, y - 1, x + 58, y + 21, 0xF, FR_BORDERONLY); } } @@ -90,20 +88,14 @@ void CcBuildAircraft(bool success, TileIndex tile, uint32 p1, uint32 p2) void CcCloneAircraft(bool success, uint tile, uint32 p1, uint32 p2) { - if (success) { - const Vehicle* v = GetVehicle(_new_aircraft_id); - - ShowAircraftViewWindow(v); - } + if (success) ShowAircraftViewWindow(GetVehicle(_new_aircraft_id)); } static void NewAircraftWndProc(Window *w, WindowEvent *e) { - switch(e->event) { - + switch (e->event) { case WE_PAINT: { - if (w->window_number == 0) - SETBIT(w->disabled_state, 5); + if (w->window_number == 0) SETBIT(w->disabled_state, 5); { int count = 0; @@ -111,8 +103,7 @@ static void NewAircraftWndProc(Window *w, WindowEvent *e) const Engine* e = GetEngine(AIRCRAFT_ENGINES_INDEX); do { - if (HASBIT(e->player_avail, _local_player)) - count++; + if (HASBIT(e->player_avail, _local_player)) count++; } while (++e,--num); SetVScrollCount(w, count); } @@ -508,7 +499,7 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e) switch(e->event) { case WE_PAINT: { const Vehicle* v = GetVehicle(w->window_number); - uint32 disabled = 1<<8; + uint32 disabled = 1 << 8; StringID str; { @@ -520,8 +511,7 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e) disabled = 0; } - if (v->owner != _local_player) - disabled |= 1<<8 | 1<<7; + if (v->owner != _local_player) disabled |= 1 << 8 | 1 << 7; w->disabled_state = disabled; /* draw widgets & caption */ @@ -555,8 +545,9 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e) if (v->num_orders == 0) { str = STR_NO_ORDERS + _patches.vehicle_speed; SetDParam(0, v->cur_speed * 8); - } else + } else { str = STR_EMPTY; + } break; } } @@ -656,9 +647,12 @@ static void DrawAircraftDepotWindow(Window *w) /* determine amount of items for scroller */ num = 0; FOR_ALL_VEHICLES(v) { - if (v->type == VEH_Aircraft && v->subtype <= 2 && v->vehstatus&VS_HIDDEN && - v->tile == tile) - num++; + if (v->type == VEH_Aircraft && + v->subtype <= 2 && + v->vehstatus & VS_HIDDEN && + v->tile == tile) { + num++; + } } SetVScrollCount(w, (num + w->hscroll.cap - 1) / w->hscroll.cap); @@ -729,9 +723,12 @@ static void AircraftDepotClickAircraft(Window *w, int x, int y) int mode = GetVehicleFromAircraftDepotWndPt(w, x, y, &v); // share / copy orders - if (_thd.place_mode && mode <= 0) { _place_clicked_vehicle = v; return; } + if (_thd.place_mode && mode <= 0) { + _place_clicked_vehicle = v; + return; + } - switch(mode) { + switch (mode) { case 1: return; @@ -789,30 +786,31 @@ static void AircraftDepotWndProc(Window *w, WindowEvent *e) case WE_CLICK: switch(e->click.widget) { - case 5: /* click aircraft */ - AircraftDepotClickAircraft(w, e->click.pt.x, e->click.pt.y); - break; - case 7: /* show build aircraft window */ - ResetObjectToPlace(); - ShowBuildAircraftWindow(w->window_number); - break; - - case 8: /* clone button */ - InvalidateWidget(w, 8); - TOGGLEBIT(w->click_state, 8); + case 5: /* click aircraft */ + AircraftDepotClickAircraft(w, e->click.pt.x, e->click.pt.y); + break; - if (HASBIT(w->click_state, 8)) { - _place_clicked_vehicle = NULL; - SetObjectToPlaceWnd(SPR_CURSOR_CLONE, VHM_RECT, w); - } else { + case 7: /* show build aircraft window */ ResetObjectToPlace(); - } - break; + ShowBuildAircraftWindow(w->window_number); + break; - case 9: /* scroll to tile */ - ResetObjectToPlace(); - ScrollMainWindowToTile(w->window_number); - break; + case 8: /* clone button */ + InvalidateWidget(w, 8); + TOGGLEBIT(w->click_state, 8); + + if (HASBIT(w->click_state, 8)) { + _place_clicked_vehicle = NULL; + SetObjectToPlaceWnd(SPR_CURSOR_CLONE, VHM_RECT, w); + } else { + ResetObjectToPlace(); + } + break; + + case 9: /* scroll to tile */ + ResetObjectToPlace(); + ScrollMainWindowToTile(w->window_number); + break; } break; @@ -920,7 +918,7 @@ void ShowAircraftDepotWindow(TileIndex tile) Window *w; w = AllocateWindowDescFront(&_aircraft_depot_desc, tile); - if (w) { + if (w != NULL) { w->caption_color = GetTileOwner(tile); w->vscroll.cap = 2; w->hscroll.cap = 4; @@ -950,8 +948,7 @@ static void DrawSmallOrderList(const Vehicle *v, int x, int y) { DrawString(x, y, STR_A036, 0); y += 6; - if (++i == 4) - break; + if (++i == 4) break; } } } @@ -1008,8 +1005,7 @@ static void PlayerAircraftWndProc(Window *w, WindowEvent *e) SetVScrollCount(w, vl->list_length); // disable 'Sort By' tooltip on Unsorted sorting criteria - if (vl->sort_type == SORT_BY_UNSORTED) - w->disabled_state |= (1 << 3); + if (vl->sort_type == SORT_BY_UNSORTED) w->disabled_state |= (1 << 3); /* draw the widgets */ { @@ -1137,8 +1133,7 @@ static void PlayerAircraftWndProc(Window *w, WindowEvent *e) _sorting.aircraft.criteria = vl->sort_type; // enable 'Sort By' if a sorter criteria is chosen - if (vl->sort_type != SORT_BY_UNSORTED) - CLRBIT(w->disabled_state, 3); + if (vl->sort_type != SORT_BY_UNSORTED) CLRBIT(w->disabled_state, 3); } SetWindowDirty(w); break; @@ -1198,7 +1193,7 @@ void ShowPlayerAircraft(PlayerID player, StationID station) w = AllocateWindowDescFront(&_other_player_aircraft_desc, (station << 16) | player); } - if (w) { + if (w != NULL) { w->caption_color = w->window_number; w->vscroll.cap = 4; w->widget[7].unkA = (w->vscroll.cap << 8) + 1; @@ -376,7 +376,7 @@ uint32 GetValidAirports(void) // 1980-1-1 is --> 21915 // 1990-1-1 is --> 25568 - if (_date >= 21915) {SETBIT(bytemask, 3);} // metropilitan airport 1980 - if (_date >= 25568) {SETBIT(bytemask, 4);} // international airport 1990 + if (_date >= 21915) SETBIT(bytemask, 3); // metropilitan airport 1980 + if (_date >= 25568) SETBIT(bytemask, 4); // international airport 1990 return bytemask; } diff --git a/airport_gui.c b/airport_gui.c index a4c072b97..d5f76fd48 100644 --- a/airport_gui.c +++ b/airport_gui.c @@ -65,7 +65,7 @@ static OnButtonClick * const _build_air_button_proc[] = { static void BuildAirToolbWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: DrawWindowWidgets(w); break; @@ -156,9 +156,9 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e) if (!HASBIT(avail_airports, 0) && sel == AT_SMALL) sel = AT_LARGE; if (!HASBIT(avail_airports, 1) && sel == AT_LARGE) sel = AT_SMALL; - /* 'Country Airport' starts at widget 3, and if its bit is set, it is available, - * so take its opposite value to set the disabled_state. There are only 5 available - * airports, so XOr with 0x1F (1 1111) */ + /* 'Country Airport' starts at widget 3, and if its bit is set, it is + * available, so take its opposite value to set the disabled_state. There + * are only 5 available airports, so XOR with 0x1F (1 1111) */ w->disabled_state = (avail_airports ^ 0x1F) << 3; _selected_airport_type = sel; @@ -177,7 +177,7 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e) } } - if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); + if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); DrawWindowWidgets(w); // strings such as 'Size' and 'Coverage Area' @@ -188,7 +188,7 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e) } case WE_CLICK: { - switch(e->click.widget) { + switch (e->click.widget) { case 3: case 4: case 5: case 6: case 7: _selected_airport_type = e->click.widget - 3; SndPlayFx(SND_15_BEEP); @@ -212,8 +212,7 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e) } break; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } diff --git a/bridge_gui.c b/bridge_gui.c index ddcc620cb..be99c25d2 100644 --- a/bridge_gui.c +++ b/bridge_gui.c @@ -33,7 +33,8 @@ void CcBuildBridge(bool success, TileIndex tile, uint32 p1, uint32 p2) static void BuildBridge(Window *w, int i) { DeleteWindow(w); - DoCommandP(_bridgedata.end_tile, _bridgedata.start_tile, _bridgedata.indexes[i] | (_bridgedata.type << 8), CcBuildBridge, + DoCommandP(_bridgedata.end_tile, _bridgedata.start_tile, + _bridgedata.indexes[i] | (_bridgedata.type << 8), CcBuildBridge, CMD_BUILD_BRIDGE | CMD_AUTO | CMD_MSG(STR_5015_CAN_T_BUILD_BRIDGE_HERE)); } diff --git a/clear_cmd.c b/clear_cmd.c index e1a494b51..c79ac608d 100644 --- a/clear_cmd.c +++ b/clear_cmd.c @@ -37,13 +37,11 @@ static int TerraformAllowTileProcess(TerraformerState *ts, TileIndex tile) TileIndex *t; int count; - if (TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY()) - return -1; + if (TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY()) return -1; t = ts->tile_table; - for(count = ts->tile_table_count; count != 0; count--,t++) { - if (*t == tile) - return 0; + for (count = ts->tile_table_count; count != 0; count--, t++) { + if (*t == tile) return 0; } return 1; @@ -54,9 +52,8 @@ static int TerraformGetHeightOfTile(TerraformerState *ts, TileIndex tile) TerraformerHeightMod *mod = ts->modheight; int count; - for(count = ts->modheight_count; count != 0; count--, mod++) { - if (mod->tile == tile) - return mod->height; + for (count = ts->modheight_count; count != 0; count--, mod++) { + if (mod->tile == tile) return mod->height; } return TileHeight(tile); @@ -69,12 +66,10 @@ static void TerraformAddDirtyTile(TerraformerState *ts, TileIndex tile) count = ts->tile_table_count; - if (count >= 625) - return; + if (count >= 625) return; for(t = ts->tile_table; count != 0; count--,t++) { - if (*t == tile) - return; + if (*t == tile) return; } ts->tile_table[ts->tile_table_count++] = tile; @@ -116,8 +111,7 @@ static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode) // If we have a single diagonal track there, the other side of // tile can be terraformed. - if ((_m[tile].m5&~0x40) == _railway_modes[mode]) - return 0; + if ((_m[tile].m5 & ~0x40) == _railway_modes[mode]) return 0; } ret = DoCommandByTile(tile, 0,0, ts->flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR); @@ -129,8 +123,7 @@ static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode) ts->cost += ret; - if (ts->tile_table_count >= 625) - return -1; + if (ts->tile_table_count >= 625) return -1; ts->tile_table[ts->tile_table_count++] = tile; return 0; @@ -151,12 +144,10 @@ static bool TerraformTileHeight(TerraformerState *ts, TileIndex tile, int height _error_message = STR_1004_TOO_HIGH; - if (height > 0xF) - return false; + if (height > 15) return false; nh = TerraformGetHeightOfTile(ts, tile); - if (nh < 0 || height == nh) - return false; + if (nh < 0 || height == nh) return false; if (TerraformProc(ts, tile, 0) < 0) return false; if (TerraformProc(ts, tile + TileDiffXY( 0, -1), 1) < 0) return false; @@ -166,7 +157,7 @@ static bool TerraformTileHeight(TerraformerState *ts, TileIndex tile, int height mod = ts->modheight; count = ts->modheight_count; - for(;;) { + for (;;) { if (count == 0) { if (ts->modheight_count >= 576) return false; @@ -280,8 +271,9 @@ int32 CmdTerraformLand(int x, int y, uint32 flags, uint32 p1, uint32 p2) t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(0, 1)); if (t <= z) z = t; - if (!CheckTunnelInWay(tile, z*8)) + if (!CheckTunnelInWay(tile, z * 8)) { return_cmd_error(STR_1002_EXCAVATION_WOULD_DAMAGE); + } } } @@ -505,8 +497,7 @@ void DrawClearLandFence(const TileInfo *ti) if (ti->tileh & 2) { z += 8; - if (ti->tileh == 0x17) - z += 8; + if (ti->tileh == 0x17) z += 8; } if (GB(m4, 5, 3) != 0) { @@ -697,8 +688,7 @@ static void TileLoopClearAlps(TileIndex tile) static void TileLoopClearDesert(TileIndex tile) { - if ( (_m[tile].m5 & 0x1C) == 0x14) - return; + if ((_m[tile].m5 & 0x1C) == 0x14) return; if (GetMapExtraBits(tile) == 1) { _m[tile].m5 = 0x17; @@ -727,12 +717,10 @@ static void TileLoop_Clear(TileIndex tile) } m5 = _m[tile].m5; - if ( (m5 & 0x1C) == 0x10 || (m5 & 0x1C) == 0x14) - return; + if ((m5 & 0x1C) == 0x10 || (m5 & 0x1C) == 0x14) return; - if ( (m5 & 0x1C) != 0xC) { - if ( (m5 & 3) == 3) - return; + if ((m5 & 0x1C) != 0xC) { + if ((m5 & 3) == 3) return; if (_game_mode != GM_EDITOR) { m5 += 0x20; @@ -76,12 +76,11 @@ void SetDebugString(const char *s) v = strtoul(s, &end, 0); s = end; - for (i = debug_level; i != endof(debug_level); ++i) - *i->level = v; + for (i = debug_level; i != endof(debug_level); ++i) *i->level = v; } // individual levels - for(;;) { + for (;;) { const DebugLevel *i; int *p; @@ -103,9 +102,9 @@ void SetDebugString(const char *s) if (*s == '=') s++; v = strtoul(s, &end, 0); s = end; - if (p != NULL) + if (p != NULL) { *p = v; - else { + } else { ShowInfoF("Unknown debug level '%.*s'", s - t, t); return; } diff --git a/disaster_cmd.c b/disaster_cmd.c index 724c7fe67..601bc641e 100644 --- a/disaster_cmd.c +++ b/disaster_cmd.c @@ -21,8 +21,7 @@ static void DisasterClearSquare(TileIndex tile) { - if (!EnsureNoVehicle(tile)) - return; + if (!EnsureNoVehicle(tile)) return; switch (GetTileType(tile)) { case MP_RAILWAY: @@ -352,7 +351,7 @@ static void DisasterTick_2(Vehicle *v) v->tick_counter++; v->u.disaster.image_override = - (v->current_order.station == 1 && v->tick_counter&4) ? SPR_F_15_FIRING : 0; + (v->current_order.station == 1 && v->tick_counter & 4) ? SPR_F_15_FIRING : 0; GetNewVehiclePos(v, &gp); SetDisasterVehiclePos(v, gp.x, gp.y, v->z_pos); @@ -423,7 +422,7 @@ static void DisasterTick_3(Vehicle *v) v->tick_counter++; v->u.disaster.image_override = - (v->current_order.station == 1 && v->tick_counter&4) ? SPR_AH_64A_FIRING : 0; + (v->current_order.station == 1 && v->tick_counter & 4) ? SPR_AH_64A_FIRING : 0; GetNewVehiclePos(v, &gp); SetDisasterVehiclePos(v, gp.x, gp.y, v->z_pos); @@ -843,8 +842,7 @@ static void Disaster4_Init(void) Vehicle *v = ForceAllocateSpecialVehicle(), *u; int x,y; - if (v == NULL) - return; + if (v == NULL) return; x = TileX(Random()) * 16 + 8; @@ -870,8 +868,7 @@ static void Disaster5_Init(void) byte dir; uint32 r; - if (v == NULL) - return; + if (v == NULL) return; r = Random(); x = TileX(r) * 16 + 8; @@ -891,8 +888,7 @@ static void Disaster6_Init(void) byte dir; uint32 r; - if (v == NULL) - return; + if (v == NULL) return; r = Random(); x = TileX(r) * 16 + 8; @@ -964,18 +960,17 @@ static const DisasterYears _dis_years[8] = { static void DoDisaster(void) { - byte buf[8]; + byte buf[lengthof(_dis_years)]; byte year = _cur_year; - int i,j; + uint i; + uint j; - for(i=j=0; i!=lengthof(_dis_years); i++) { - if (year >= _dis_years[i].min && - year < _dis_years[i].max) - buf[j++] = i; + j = 0; + for (i = 0; i != lengthof(_dis_years); i++) { + if (year >= _dis_years[i].min && year < _dis_years[i].max) buf[j++] = i; } - if (j == 0) - return; + if (j == 0) return; _disaster_initprocs[buf[RandomRange(j)]](); } @@ -988,13 +983,11 @@ static void ResetDisasterDelay(void) void DisasterDailyLoop(void) { - if (--_disaster_delay != 0) - return; + if (--_disaster_delay != 0) return; ResetDisasterDelay(); - if (_opt.diff.disasters != 0) - DoDisaster(); + if (_opt.diff.disasters != 0) DoDisaster(); } void StartupDisasters(void) diff --git a/dock_gui.c b/dock_gui.c index a1e14b726..0c6c97a24 100644 --- a/dock_gui.c +++ b/dock_gui.c @@ -222,35 +222,39 @@ void ShowBuildDocksToolbar(void) static void BuildDockStationWndProc(Window *w, WindowEvent *e) { - int rad; - - switch(e->event) { + switch (e->event) { case WE_PAINT: { - if (WP(w,def_d).close) - return; + int rad; + + if (WP(w,def_d).close) return; w->click_state = (1<<3) << _station_show_coverage; DrawWindowWidgets(w); rad = (_patches.modified_catchment) ? CA_DOCK : 4; - if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); - else SetTileSelectBigSize(0, 0, 0, 0); + if (_station_show_coverage) { + SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); + } else { + SetTileSelectBigSize(0, 0, 0, 0); + } DrawStringCentered(74, 17, STR_3066_COVERAGE_AREA_HIGHLIGHT, 0); DrawStationCoverageAreaText(4, 50, (uint)-1, rad); - } break; + break; + } - case WE_CLICK: { - switch(e->click.widget) { - case 3: case 4: - _station_show_coverage = e->click.widget - 3; - SndPlayFx(SND_15_BEEP); - SetWindowDirty(w); - break; + case WE_CLICK: + switch (e->click.widget) { + case 3: + case 4: + _station_show_coverage = e->click.widget - 3; + SndPlayFx(SND_15_BEEP); + SetWindowDirty(w); + break; } - } break; + break; - case WE_MOUSELOOP: { + case WE_MOUSELOOP: if (WP(w,def_d).close) { DeleteWindow(w); return; @@ -258,11 +262,9 @@ static void BuildDockStationWndProc(Window *w, WindowEvent *e) CheckRedrawStationCoverage(w); break; - } case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } @@ -324,13 +326,11 @@ static void BuildDocksDepotWndProc(Window *w, WindowEvent *e) } break; case WE_MOUSELOOP: - if (WP(w,def_d).close) - DeleteWindow(w); + if (WP(w,def_d).close) DeleteWindow(w); break; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } @@ -72,7 +72,7 @@ void UpdatePlayerHouse(Player *p, uint score) MarkTileDirtyByTile(tile + TileDiffXY(1, 1)); } -int64 CalculateCompanyValue(const Player *p) +int64 CalculateCompanyValue(const Player* p) { PlayerID owner = p->index; int64 value; @@ -647,8 +647,8 @@ static void AddInflation(void) int i; int32 inf = _economy.infl_amount * 54; - for(i=0; i!=NUM_PRICES; i++) { - AddSingleInflation( (int32*)&_price + i, _price_frac + i, inf ); + for (i = 0; i != NUM_PRICES; i++) { + AddSingleInflation((int32*)&_price + i, _price_frac + i, inf); } _economy.max_loan_unround += BIGMULUS(_economy.max_loan_unround, inf, 16); @@ -657,7 +657,7 @@ static void AddInflation(void) _economy.max_loan += 50000; inf = _economy.infl_amount_pr * 54; - for(i=0; i!=NUM_CARGO; i++) { + for (i = 0; i != NUM_CARGO; i++) { AddSingleInflation( (int32*)_cargo_payment_rates + i, _cargo_payment_rates_frac + i, @@ -677,8 +677,7 @@ static void PlayersPayInterest(void) int interest = _economy.interest_rate * 54; FOR_ALL_PLAYERS(p) { - if (!p->is_active) - continue; + if (!p->is_active) continue; _current_player = p->index; SET_EXPENSES_TYPE(EXPENSES_LOAN_INT); @@ -692,8 +691,7 @@ static void PlayersPayInterest(void) static void HandleEconomyFluctuations(void) { - if (_opt.diff.economy == 0) - return; + if (_opt.diff.economy == 0) return; if (--_economy.fluct == 0) { _economy.fluct = - (int)(Random()&3); @@ -985,9 +983,8 @@ static bool CheckSubsidyDuplicate(Subsidy *s) { const Subsidy* ss; - for(ss=_subsidies; ss != endof(_subsidies); ss++) { + for (ss = _subsidies; ss != endof(_subsidies); ss++) { if (s != ss && -// ss->age < 12 && ss->from == s->from && ss->to == s->to && ss->cargo_type == s->cargo_type) { @@ -1333,7 +1330,6 @@ int LoadUnloadVehicle(Vehicle *v) int result = 0; uint16 last_visited; Station *st; - GoodsEntry *ge; int t; uint count, cap; PlayerID old_player; @@ -1349,13 +1345,15 @@ int LoadUnloadVehicle(Vehicle *v) st = GetStation(last_visited = v->last_station_visited); for (; v != NULL; v = v->next) { + GoodsEntry* ge; + if (v->cargo_cap == 0) continue; ge = &st->goods[v->cargo_type]; /* unload? */ if (v->cargo_count != 0) { - if ( v->cargo_source != last_visited && ge->waiting_acceptance & 0x8000 && !(u->current_order.flags & OF_TRANSFER) ) { + if (v->cargo_source != last_visited && ge->waiting_acceptance & 0x8000 && !(u->current_order.flags & OF_TRANSFER)) { // deliver goods to the station st->time_since_unload = 0; @@ -1363,7 +1361,7 @@ int LoadUnloadVehicle(Vehicle *v) profit += DeliverGoods(v->cargo_count, v->cargo_type, v->cargo_source, last_visited, v->cargo_days); result |= 1; v->cargo_count = 0; - } else if (u->current_order.flags & ( OF_UNLOAD | OF_TRANSFER) ) { + } else if (u->current_order.flags & (OF_UNLOAD | OF_TRANSFER)) { /* unload goods and let it wait at the station */ st->time_since_unload = 0; @@ -883,8 +883,7 @@ void EnginesDailyLoop(void) } else { e->flags |= ENGINE_PREVIEWING; e->preview_wait = 20; - if (IS_INTERACTIVE_PLAYER(best_player)) - ShowEnginePreviewWindow(i); + if (IS_INTERACTIVE_PLAYER(best_player)) ShowEnginePreviewWindow(i); } } } @@ -925,12 +924,11 @@ static void NewVehicleAvailable(Engine *e) // In case the player didn't build the vehicle during the intro period, // prevent that player from getting future intro periods for a while. - if (e->flags&ENGINE_INTRODUCING) { + if (e->flags & ENGINE_INTRODUCING) { FOR_ALL_PLAYERS(p) { uint block_preview = p->block_preview; - if (!HASBIT(e->player_avail,p->index)) - continue; + if (!HASBIT(e->player_avail, p->index)) continue; /* We assume the user did NOT build it.. prove me wrong ;) */ p->block_preview = 20; @@ -956,8 +954,7 @@ static void NewVehicleAvailable(Engine *e) e->player_avail = (byte)-1; // Do not introduce new rail wagons - if (IsWagon(index)) - return; + if (IsWagon(index)) return; // make maglev / monorail available FOR_ALL_PLAYERS(p) { diff --git a/engine_gui.c b/engine_gui.c index eb4c35d41..2cb213064 100644 --- a/engine_gui.c +++ b/engine_gui.c @@ -65,12 +65,11 @@ static const DrawEngineInfo _draw_engine_list[4] = { static void EnginePreviewWndProc(Window *w, WindowEvent *e) { - const DrawEngineInfo *dei; - int width; - - switch(e->event) { + switch (e->event) { case WE_PAINT: { EngineID engine = w->window_number; + const DrawEngineInfo* dei; + int width; DrawWindowWidgets(w); @@ -91,12 +90,15 @@ static void EnginePreviewWndProc(Window *w, WindowEvent *e) } case WE_CLICK: - switch(e->click.widget) { - case 3: DeleteWindow(w); break; - case 4: - DoCommandP(0, w->window_number, 0, NULL, CMD_WANT_ENGINE_PREVIEW); - DeleteWindow(w); - break; + switch (e->click.widget) { + case 3: + DeleteWindow(w); + break; + + case 4: + DoCommandP(0, w->window_number, 0, NULL, CMD_WANT_ENGINE_PREVIEW); + DeleteWindow(w); + break; } break; } diff --git a/functions.h b/functions.h index a73a828ef..39cbb5dfb 100644 --- a/functions.h +++ b/functions.h @@ -151,7 +151,7 @@ void InitializeAnimatedTiles(void); /* tunnelbridge_cmd.c */ bool CheckTunnelInWay(TileIndex tile, int z); -bool CheckBridge_Stuff(byte bridge_type, int bridge_len); +bool CheckBridge_Stuff(byte bridge_type, uint bridge_len); uint32 GetBridgeLength(TileIndex begin, TileIndex end); int CalcBridgeLenCostFactor(int x); @@ -1994,7 +1994,6 @@ uint16 GetDrawStringPlayerColor(PlayerID player) { // Get the color for DrawString-subroutines which matches the color // of the player - if (player == OWNER_SPECTATOR || player == OWNER_SPECTATOR - 1) - return 1; + if (player == OWNER_SPECTATOR || player == OWNER_SPECTATOR - 1) return 1; return (_color_list[_player_colors[player]].window_color_1b) | IS_PALETTE_COLOR; } @@ -145,7 +145,7 @@ static bool FileMD5(const MD5File file, bool warn) fclose(f); md5_finish(&filemd5state, digest); - return CheckMD5Digest(file, digest, warn); + return CheckMD5Digest(file, digest, warn); } else { // file not found return false; } @@ -321,11 +321,9 @@ static byte _sprite_page_to_load = 0xFF; static void LoadSpriteTables(void) { - uint load_index = 0; + const FileList* files = _use_dos_palette ? &files_dos : &files_win; + uint load_index; uint i; - const FileList *files; // list of grf files to be loaded. Either Windows files or DOS files - - files = _use_dos_palette? &files_dos : &files_win; LoadGrfIndexed(files->basic[0].filename, trg1idx, 0); DupSprite( 2, 130); // non-breaking space medium diff --git a/graph_gui.c b/graph_gui.c index cedca5f46..16329ecb9 100644 --- a/graph_gui.c +++ b/graph_gui.c @@ -224,15 +224,13 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e) switch(e->event) { case WE_PAINT: FOR_ALL_PLAYERS(p) { - if (!p->is_active) - SETBIT(_legend_excludebits, p->index); + if (!p->is_active) SETBIT(_legend_excludebits, p->index); } - w->click_state = ((~_legend_excludebits) << 3); + w->click_state = (~_legend_excludebits) << 3; DrawWindowWidgets(w); FOR_ALL_PLAYERS(p) { - if (!p->is_active) - continue; + if (!p->is_active) continue; DrawPlayerIcon(p->index, 4, 18+p->index*12); @@ -245,7 +243,7 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e) case WE_CLICK: if (IS_INT_INSIDE(e->click.widget, 3, 11)) { - _legend_excludebits ^= (1 << (e->click.widget-3)); + _legend_excludebits ^= (1 << (e->click.widget - 3)); SetWindowDirty(w); InvalidateWindow(WC_INCOME_GRAPH, 0); InvalidateWindow(WC_OPERATING_PROFIT, 0); diff --git a/industry_cmd.c b/industry_cmd.c index 21419f4c4..849c3563b 100644 --- a/industry_cmd.c +++ b/industry_cmd.c @@ -31,8 +31,7 @@ void IndustryPoolNewBlock(uint start_item) { Industry *i; - FOR_ALL_INDUSTRIES_FROM(i, start_item) - i->index = start_item++; + FOR_ALL_INDUSTRIES_FROM(i, start_item) i->index = start_item++; } /* Initialize the industry-pool */ @@ -251,7 +250,7 @@ static const StringID _industry_close_strings[] = { STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4832_ANNOUNCES_IMMINENT_CLOSURE, - STR_4832_ANNOUNCES_IMMINENT_CLOSURE , + STR_4832_ANNOUNCES_IMMINENT_CLOSURE }; @@ -260,19 +259,20 @@ static void IndustryDrawTileProc1(const TileInfo *ti) const DrawIndustrySpec1Struct *d; uint32 image; - if (!(_m[ti->tile].m1 & 0x80)) - return; + if (!(_m[ti->tile].m1 & 0x80)) return; d = &_draw_industry_spec1[_m[ti->tile].m3]; AddChildSpriteScreen(0x12A7 + d->image_1, d->x, 0); - if ( (image = d->image_2) != 0) - AddChildSpriteScreen(0x12B0 + image - 1, 8, 41); + image = d->image_2; + if (image != 0) AddChildSpriteScreen(0x12B0 + image - 1, 8, 41); - if ( (image = d->image_3) != 0) + image = d->image_3; + if (image != 0) { AddChildSpriteScreen(0x12AC + image - 1, - _drawtile_proc1_x[image-1], _drawtile_proc1_y[image-1]); + _drawtile_proc1_x[image - 1], _drawtile_proc1_y[image - 1]); + } } static void IndustryDrawTileProc2(const TileInfo *ti) @@ -285,17 +285,17 @@ static void IndustryDrawTileProc2(const TileInfo *ti) x = 0; } - AddChildSpriteScreen(0x129F, 22-x, x+24); + AddChildSpriteScreen(0x129F, 22 - x, 24 + x); AddChildSpriteScreen(0x129E, 6, 0xE); } static void IndustryDrawTileProc3(const TileInfo *ti) { if (_m[ti->tile].m1 & 0x80) { - AddChildSpriteScreen(0x128B, 5, - _industry_anim_offs_2[_m[ti->tile].m3]); + AddChildSpriteScreen(0x128B, 5, _industry_anim_offs_2[_m[ti->tile].m3]); + } else { + AddChildSpriteScreen(4746, 3, 67); } - AddChildSpriteScreen(4746, 3, 67); } static void IndustryDrawTileProc4(const TileInfo *ti) @@ -309,7 +309,7 @@ static void IndustryDrawTileProc4(const TileInfo *ti) } if (d->image_2 != 0xFF) { - AddChildSpriteScreen(0x1270, 0x10 - d->image_2*2, 100 + d->image_2); + AddChildSpriteScreen(0x1270, 0x10 - d->image_2 * 2, 100 + d->image_2); } AddChildSpriteScreen(0x126E, 7, d->image_3); @@ -323,8 +323,8 @@ static void DrawCoalPlantSparkles(const TileInfo *ti) image = GB(image, 2, 5); if (image != 0 && image < 7) { AddChildSpriteScreen(image + 0x806, - _coal_plant_sparkles_x[image-1], - _coal_plant_sparkles_y[image-1] + _coal_plant_sparkles_x[image - 1], + _coal_plant_sparkles_y[image - 1] ); } } @@ -348,7 +348,7 @@ static void DrawTile_Industry(TileInfo *ti) /* Pointer to industry */ ind = GetIndustry(_m[ti->tile].m2); - ormod = (ind->color_map+0x307) << PALETTE_SPRITE_START; + ormod = (ind->color_map + 0x307) << PALETTE_SPRITE_START; /* Retrieve pointer to the draw industry tile struct */ dits = &_industry_draw_tile_data[(ti->map5 << 2) | GB(_m[ti->tile].m1, 0, 2)]; @@ -369,13 +369,12 @@ static void DrawTile_Industry(TileInfo *ti) } /* Add industry on top of the ground? */ - if ((image = dits->sprite_2) != 0) { - + image = dits->sprite_2; + if (image != 0) { if (image & PALETTE_MODIFIER_COLOR && (image & PALETTE_SPRITE_MASK) == 0) image |= ormod; - if (_display_opt & DO_TRANS_BUILDINGS) - MAKE_TRANSPARENT(image); + if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image); AddSortableSpriteToDraw(image, ti->x | (dits->subtile_xy>>4), @@ -385,15 +384,12 @@ static void DrawTile_Industry(TileInfo *ti) dits->dz, z); - if (_display_opt & DO_TRANS_BUILDINGS) - return; + if (_display_opt & DO_TRANS_BUILDINGS) return; } - /* TTDBUG: strange code here, return if AddSortableSpriteToDraw failed? */ - { - int proc; - if ((proc=dits->proc-1) >= 0 ) - _industry_draw_tile_procs[proc](ti); + { + int proc = dits->proc - 1; + if (proc >= 0) _industry_draw_tile_procs[proc](ti); } } @@ -451,9 +447,7 @@ static int32 ClearTile_Industry(TileIndex tile, byte flags) return_cmd_error(STR_4800_IN_THE_WAY); } - if (flags & DC_EXEC) { - DeleteIndustry(i); - } + if (flags & DC_EXEC) DeleteIndustry(i); return 0; } @@ -468,20 +462,17 @@ static const byte _industry_min_cargo[] = { static void TransportIndustryGoods(TileIndex tile) { - Industry *i; - int type; + Industry* i = GetIndustry(_m[tile].m2); uint cw, am; - byte m5; - - i = GetIndustry(_m[tile].m2); - type = i->type; cw = min(i->cargo_waiting[0], 255); - if (cw > _industry_min_cargo[type]/* && i->produced_cargo[0] != 0xFF*/) { + if (cw > _industry_min_cargo[i->type]/* && i->produced_cargo[0] != 0xFF*/) { + byte m5; + i->cargo_waiting[0] -= cw; /* fluctuating economy? */ - if (_economy.fluct <= 0) cw = (cw + 1) >> 1; + if (_economy.fluct <= 0) cw = (cw + 1) / 2; i->last_mo_production[0] += cw; @@ -494,12 +485,11 @@ static void TransportIndustryGoods(TileIndex tile) } } - type = i->type; cw = min(i->cargo_waiting[1], 255); - if (cw > _industry_min_cargo[type]) { + if (cw > _industry_min_cargo[i->type]) { i->cargo_waiting[1] -= cw; - if (_economy.fluct <= 0) cw = (cw + 1) >> 1; + if (_economy.fluct <= 0) cw = (cw + 1) / 2; i->last_mo_production[1] += cw; @@ -717,7 +707,6 @@ static void MakeIndustryTileBigger(TileIndex tile, byte size) } - static void TileLoopIndustryCase161(TileIndex tile) { int dir; @@ -739,8 +728,7 @@ static void TileLoopIndustryCase161(TileIndex tile) EV_BUBBLE ); - if (v != NULL) - v->u.special.unk2 = dir; + if (v != NULL) v->u.special.unk2 = dir; } static void TileLoop_Industry(TileIndex tile) @@ -752,8 +740,7 @@ static void TileLoop_Industry(TileIndex tile) return; } - if (_game_mode == GM_EDITOR) - return; + if (_game_mode == GM_EDITOR) return; TransportIndustryGoods(tile); @@ -768,7 +755,7 @@ static void TileLoop_Industry(TileIndex tile) #define SET_AND_ANIMATE(tile, a, b) { _m[tile].m5 = a; _m[tile].m1 = b; AddAnimatedTile(tile); } #define SET_AND_UNANIMATE(tile, a, b) { _m[tile].m5 = a; _m[tile].m1 = b; DeleteAnimatedTile(tile); } - switch(_m[tile].m5) { + switch (_m[tile].m5) { case 0x18: // coast line at oilrigs case 0x19: case 0x1A: @@ -819,9 +806,9 @@ static void TileLoop_Industry(TileIndex tile) } break; - case 49: { + case 49: CreateEffectVehicleAbove(TileX(tile) * 16 + 6, TileY(tile) * 16 + 6, 43, EV_SMOKE); - } break; + break; case 143: { @@ -843,9 +830,7 @@ static void TileLoop_Industry(TileIndex tile) break; case 174: - if (CHANCE16(1,3)) { - AddAnimatedTile(tile); - } + if (CHANCE16(1, 3)) AddAnimatedTile(tile); break; } } @@ -1030,15 +1015,17 @@ static void ChopLumberMillTrees(Industry *i) }; TileIndex tile = i->xy; - int dir, a, j; + int a; - if ((_m[tile].m1 & 0x80) == 0) - return; + if ((_m[tile].m1 & 0x80) == 0) return; /* search outwards as a rectangular spiral */ - for(a=1; a!=41; a+=2) { - for(dir=0; dir!=4; dir++) { - j = a; + for (a = 1; a != 41; a += 2) { + uint dir; + + for (dir = 0; dir != 4; dir++) { + int j = a; + do { tile = TILE_MASK(tile); if (IsTileType(tile, MP_TREES)) { @@ -1127,10 +1114,11 @@ static void ProduceIndustryGoods(Industry *i) i->cargo_waiting[0] = min(0xffff, i->cargo_waiting[0] + i->production_rate[0]); i->cargo_waiting[1] = min(0xffff, i->cargo_waiting[1] + i->production_rate[1]); - if (i->type == IT_FARM) + if (i->type == IT_FARM) { MaybePlantFarmField(i); - else if (i->type == IT_LUMBER_MILL && (i->counter & 0x1FF) == 0) + } else if (i->type == IT_LUMBER_MILL && (i->counter & 0x1FF) == 0) { ChopLumberMillTrees(i); + } } } @@ -1149,12 +1137,10 @@ void OnTick_Industry(void) } } - if (_game_mode == GM_EDITOR) - return; + if (_game_mode == GM_EDITOR) return; FOR_ALL_INDUSTRIES(i) { - if (i->xy != 0) - ProduceIndustryGoods(i); + if (i->xy != 0) ProduceIndustryGoods(i); } } @@ -1180,14 +1166,9 @@ extern bool _ignore_restrictions; /* Oil Rig and Oil Refinery */ static bool CheckNewIndustry_Oil(TileIndex tile, int type) { - if(_ignore_restrictions && _game_mode == GM_EDITOR) - return true; - - if (type != IT_OIL_RIG && _game_mode == GM_EDITOR) - return true; - - if (DistanceFromEdge(TILE_ADDXY(tile, 1, 1)) < 16) - return true; + if (_game_mode == GM_EDITOR && _ignore_restrictions) return true; + if (_game_mode == GM_EDITOR && type != IT_OIL_RIG) return true; + if (DistanceFromEdge(TILE_ADDXY(tile, 1, 1)) < 16) return true; _error_message = STR_483B_CAN_ONLY_BE_POSITIONED; return false; @@ -1255,7 +1236,7 @@ static bool CheckSuitableIndustryPos(TileIndex tile) uint x = TileX(tile); uint y = TileY(tile); - if ( x < 2 || y < 2 || x > MapMaxX() - 3 || y > MapMaxY() - 3) { + if (x < 2 || y < 2 || x > MapMaxX() - 3 || y > MapMaxY() - 3) { _error_message = STR_0239_SITE_UNSUITABLE; return false; } @@ -1270,8 +1251,7 @@ static const Town* CheckMultipleIndustryInTown(TileIndex tile, int type) t = ClosestTownFromTile(tile, (uint)-1); - if (_patches.multiple_industry_per_town) - return t; + if (_patches.multiple_industry_per_town) return t; FOR_ALL_INDUSTRIES(i) { if (i->xy != 0 && @@ -1320,26 +1300,21 @@ static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable* TileIndex cur_tile = tile + ToTileIndexDiff(it->ti); if (!IsValidTile(cur_tile)) { - if (it->map5 == 0xff) - continue; + if (it->map5 == 0xff) continue; return false; } FindLandscapeHeightByTile(&ti, cur_tile); if (it->map5 == 0xFF) { - if (ti.type != MP_WATER || ti.tileh != 0) - return false; + if (ti.type != MP_WATER || ti.tileh != 0) return false; } else { - if (!EnsureNoVehicle(cur_tile)) - return false; + if (!EnsureNoVehicle(cur_tile)) return false; if (type == IT_OIL_RIG) { - if (ti.type != MP_WATER || ti.map5 != 0) - return false; + if (ti.type != MP_WATER || ti.map5 != 0) return false; } else { - if (ti.type == MP_WATER && ti.map5 == 0) - return false; + if (ti.type == MP_WATER && ti.map5 == 0) return false; if (IsSteepTileh(ti.tileh)) return false; @@ -1347,22 +1322,14 @@ static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable* int t; byte bits = _industry_map5_bits[it->map5]; - if (bits & 0x10) - return false; + if (bits & 0x10) return false; t = ~ti.tileh; - if (bits & 1 && (t & (1+8))) - return false; - - if (bits & 2 && (t & (4+8))) - return false; - - if (bits & 4 && (t & (1+2))) - return false; - - if (bits & 8 && (t & (2+4))) - return false; + if (bits & 1 && (t & (1 + 8))) return false; + if (bits & 2 && (t & (4 + 8))) return false; + if (bits & 4 && (t & (1 + 2))) return false; + if (bits & 8 && (t & (2 + 4))) return false; } if (type == IT_BANK) { @@ -1376,8 +1343,7 @@ static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable* return false; } } else if (type == IT_TOY_SHOP) { - if (DistanceMax(t->xy, cur_tile) > 9) - return false; + if (DistanceMax(t->xy, cur_tile) > 9) return false; if (ti.type != MP_HOUSE) goto do_clear; } else if (type == IT_WATER_TOWER) { if (ti.type != MP_HOUSE) { @@ -1398,9 +1364,8 @@ do_clear: static bool CheckIfTooCloseToIndustry(TileIndex tile, int type) { + const IndustrySpec* spec = &_industry_spec[type]; const Industry* i; - const IndustrySpec *spec; - spec = &_industry_spec[type]; // accepting industries won't be close, not even with patch if (_patches.same_industry_close && spec->accepts_cargo[0] == CT_INVALID) @@ -1409,15 +1374,16 @@ static bool CheckIfTooCloseToIndustry(TileIndex tile, int type) FOR_ALL_INDUSTRIES(i) { // check if an industry that accepts the same goods is nearby if (i->xy != 0 && - (DistanceMax(tile, i->xy) <= 14) && + DistanceMax(tile, i->xy) <= 14 && spec->accepts_cargo[0] != CT_INVALID && - spec->accepts_cargo[0] == i->accepts_cargo[0] && - !(_game_mode == GM_EDITOR && - _patches.same_industry_close && - _patches.multiple_industry_per_town)) { - _error_message = STR_INDUSTRY_TOO_CLOSE; - return false; - } + spec->accepts_cargo[0] == i->accepts_cargo[0] && ( + _game_mode != GM_EDITOR || + !_patches.same_industry_close || + !_patches.multiple_industry_per_town + )) { + _error_message = STR_INDUSTRY_TOO_CLOSE; + return false; + } // check "not close to" field. if (i->xy != 0 && @@ -1438,10 +1404,9 @@ static Industry *AllocateIndustry(void) if (i->xy == 0) { uint index = i->index; - if (i->index > _total_industries) - _total_industries = i->index; + if (i->index > _total_industries) _total_industries = i->index; - memset(i, 0, sizeof(Industry)); + memset(i, 0, sizeof(*i)); i->index = index; return i; @@ -1498,8 +1463,7 @@ static void DoCreateNewIndustry(Industry* i, TileIndex tile, int type, const Ind i->total_production[0] = i->production_rate[0] * 8; i->total_production[1] = i->production_rate[1] * 8; - if (_generating_world == 0) - i->total_production[0] = i->total_production[1] = 0; + if (!_generating_world) i->total_production[0] = i->total_production[1] = 0; i->prod_level = 0x10; @@ -1528,13 +1492,12 @@ static void DoCreateNewIndustry(Industry* i, TileIndex tile, int type, const Ind if (i->type == IT_FARM || i->type == IT_FARM_2) { tile = i->xy + TileDiffXY(i->width / 2, i->height / 2); - for(j=0; j!=50; j++) { + for (j = 0; j != 50; j++) { int x = Random() % 31 - 16; int y = Random() % 31 - 16; - TileIndex new_tile = TileAddWrap(tile, x, y); + TileIndex new_tile = TileAddWrap(tile, x, y); - if (new_tile != INVALID_TILE) - PlantFarmField(new_tile); + if (new_tile != INVALID_TILE) PlantFarmField(new_tile); } } _industry_sort_dirty = true; @@ -1562,10 +1525,15 @@ int32 CmdBuildIndustry(int x, int y, uint32 flags, uint32 p1, uint32 p2) /* Check if the to-be built/founded industry is available for this climate. * Unfortunately we have no easy way of checking, except for looping the table */ - { const byte *i; + { + const byte* i; bool found = false; + for (i = &_build_industry_types[_opt_ptr->landscape][0]; i != endof(_build_industry_types[_opt_ptr->landscape]); i++) { - if (*i == p1) {found = true; break;} + if (*i == p1) { + found = true; + break; + } } if (!found) return CMD_ERROR; } @@ -1584,7 +1552,8 @@ int32 CmdBuildIndustry(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (!_check_new_industry_procs[spec->check_proc](tile, p1)) return CMD_ERROR; - if ((t = CheckMultipleIndustryInTown(tile, p1)) == NULL) return CMD_ERROR; + t = CheckMultipleIndustryInTown(tile, p1); + if (t == NULL) return CMD_ERROR; num = spec->num_table; itt = spec->table; @@ -1596,10 +1565,10 @@ int32 CmdBuildIndustry(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (!CheckIfTooCloseToIndustry(tile, p1)) return CMD_ERROR; - if ( (i = AllocateIndustry()) == NULL) return CMD_ERROR; + i = AllocateIndustry(); + if (i == NULL) return CMD_ERROR; - if (flags & DC_EXEC) - DoCreateNewIndustry(i, tile, p1, it, t, OWNER_NONE); + if (flags & DC_EXEC) DoCreateNewIndustry(i, tile, p1, it, t, OWNER_NONE); return (_price.build_industry >> 5) * _industry_type_costs[p1]; } @@ -1613,28 +1582,23 @@ Industry *CreateNewIndustry(TileIndex tile, int type) const IndustrySpec *spec; - if (!CheckSuitableIndustryPos(tile)) - return NULL; + if (!CheckSuitableIndustryPos(tile)) return NULL; spec = &_industry_spec[type]; - if (!_check_new_industry_procs[spec->check_proc](tile, type)) - return NULL; + if (!_check_new_industry_procs[spec->check_proc](tile, type)) return NULL; - if (!(t=CheckMultipleIndustryInTown(tile, type))) - return NULL; + t = CheckMultipleIndustryInTown(tile, type); + if (t == NULL) return NULL; /* pick a random layout */ - it = spec->table[RandomRange(spec->num_table)];; - - if (!CheckIfIndustryTilesAreFree(tile, it, type, t)) - return NULL; + it = spec->table[RandomRange(spec->num_table)]; - if (!CheckIfTooCloseToIndustry(tile, type)) - return NULL; + if (!CheckIfIndustryTilesAreFree(tile, it, type, t)) return NULL; + if (!CheckIfTooCloseToIndustry(tile, type)) return NULL; - if ( (i = AllocateIndustry()) == NULL) - return NULL; + i = AllocateIndustry(); + if (i == NULL) return NULL; DoCreateNewIndustry(i, tile, type, it, t, OWNER_NONE); @@ -1659,18 +1623,17 @@ static void PlaceInitialIndustry(byte type, int amount) num = ScaleByMapSize(num); } - if (_opt.diff.number_industries != 0) - { + if (_opt.diff.number_industries != 0) { PlayerID old_player = _current_player; _current_player = OWNER_NONE; assert(num > 0); do { - int i = 2000; - do { - if (CreateNewIndustry(RandomTile(), type) != NULL) - break; - } while (--i != 0); + uint i; + + for (i = 0; i < 2000; i++) { + if (CreateNewIndustry(RandomTile(), type) != NULL) break; + } } while (--num); _current_player = old_player; @@ -1713,7 +1676,6 @@ static void ExtChangeIndustryProduction(Industry *i) if (CHANCE16I(20 + (i->pct_transported[j] * 20 >> 8), 1024, r >> 16)) new += ((RandomRange(50) + 10) * old) >> 8; - // make sure it doesn't exceed 255 or goes below 0 new = clamp(new, 0, 255); if (new == old) { closeit = false; @@ -1731,9 +1693,11 @@ static void ExtChangeIndustryProduction(Industry *i) SetDParam(2, mag); SetDParam(0, _cargoc.names_s[i->produced_cargo[j]]); SetDParam(1, i->index); - AddNewsItem(percent >= 0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN, - NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), - i->xy + TileDiffXY(1, 1), 0); + AddNewsItem( + percent >= 0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN, + NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), + i->xy + TileDiffXY(1, 1), 0 + ); } } break; @@ -1742,9 +1706,11 @@ static void ExtChangeIndustryProduction(Industry *i) if (closeit) { i->prod_level = 0; SetDParam(0, i->index); - AddNewsItem(_industry_close_strings[i->type], - NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), - i->xy + TileDiffXY(1, 1), 0); + AddNewsItem( + _industry_close_strings[i->type], + NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), + i->xy + TileDiffXY(1, 1), 0 + ); } } @@ -1787,10 +1753,11 @@ static void UpdateIndustryStatistics(Industry *i) if (i->produced_cargo[0] != CT_INVALID || i->produced_cargo[1] != CT_INVALID) InvalidateWindow(WC_INDUSTRY_VIEW, i->index); - if (i->prod_level == 0) + if (i->prod_level == 0) { DeleteIndustry(i); - else if (_patches.smooth_economy) + } else if (_patches.smooth_economy) { ExtChangeIndustryProduction(i); + } } static const byte _new_industry_rand[4][32] = { @@ -1807,19 +1774,15 @@ static void MaybeNewIndustry(uint32 r) Industry *i; type = _new_industry_rand[_opt.landscape][GB(r, 16, 5)]; - if (type == IT_OIL_WELL && _date > 10958) - return; - if (type == IT_OIL_RIG && _date < 14610) - return; + if (type == IT_OIL_WELL && _date > 10958) return; + if (type == IT_OIL_RIG && _date < 14610) return; j = 2000; - for(;;) { + for (;;) { i = CreateNewIndustry(RandomTile(), type); - if (i != NULL) - break; - if (--j == 0) - return; + if (i != NULL) break; + if (--j == 0) return; } SetDParam(0, type + STR_4802_COAL_MINE); @@ -1905,8 +1868,7 @@ void IndustryMonthlyLoop(void) _current_player = OWNER_NONE; FOR_ALL_INDUSTRIES(i) { - if (i->xy != 0) - UpdateIndustryStatistics(i); + if (i->xy != 0) UpdateIndustryStatistics(i); } /* 3% chance that we start a new industry */ @@ -1914,8 +1876,7 @@ void IndustryMonthlyLoop(void) MaybeNewIndustry(Random()); } else if (!_patches.smooth_economy && _total_industries > 0) { i = GetIndustry(RandomRange(_total_industries)); - if (i->xy != 0) - ChangeIndustryProduction(i); + if (i->xy != 0) ChangeIndustryProduction(i); } _current_player = old_player; @@ -1928,7 +1889,6 @@ void IndustryMonthlyLoop(void) void InitializeIndustries(void) { - CleanPool(&_industry_pool); AddBlockToPool(&_industry_pool); @@ -2012,8 +1972,7 @@ static void Load_INDY(void) i = GetIndustry(index); SlObject(i, _industry_desc); - if (index > _total_industries) - _total_industries = index; + if (index > _total_industries) _total_industries = index; } } diff --git a/intro_gui.c b/intro_gui.c index 08a7fdbfe..1521c7b3e 100644 --- a/intro_gui.c +++ b/intro_gui.c @@ -154,8 +154,9 @@ static const Widget _ask_abandon_game_widgets[] = { { WIDGETS_END }, }; -static void AskAbandonGameWndProc(Window *w, WindowEvent *e) { - switch(e->event) { +static void AskAbandonGameWndProc(Window* w, WindowEvent* e) +{ + switch (e->event) { case WE_PAINT: DrawWindowWidgets(w); #if defined(_WIN32) @@ -173,7 +174,7 @@ static void AskAbandonGameWndProc(Window *w, WindowEvent *e) { #else SetDParam(0, STR_0134_UNIX); #endif - DrawStringMultiCenter(0x5A, 0x26, STR_00CA_ARE_YOU_SURE_YOU_WANT_TO, 178); + DrawStringMultiCenter(90, 38, STR_00CA_ARE_YOU_SURE_YOU_WANT_TO, 178); return; case WE_CLICK: @@ -217,32 +218,29 @@ static const Widget _ask_quit_game_widgets[] = { { WIDGETS_END }, }; -static void AskQuitGameWndProc(Window *w, WindowEvent *e) { - switch(e->event) { - case WE_PAINT: - DrawWindowWidgets(w); - DrawStringMultiCenter(0x5A, 0x26, - _game_mode != GM_EDITOR ? STR_0160_ARE_YOU_SURE_YOU_WANT_TO : - STR_029B_ARE_YOU_SURE_YOU_WANT_TO, - 178); - return; - - case WE_CLICK: - switch(e->click.widget) { - case 3: - DeleteWindow(w); - break; - case 4: - _switch_mode = SM_MENU; +static void AskQuitGameWndProc(Window* w, WindowEvent* e) +{ + switch (e->event) { + case WE_PAINT: + DrawWindowWidgets(w); + DrawStringMultiCenter( + 90, 38, + _game_mode != GM_EDITOR ? + STR_0160_ARE_YOU_SURE_YOU_WANT_TO : STR_029B_ARE_YOU_SURE_YOU_WANT_TO, + 178 + ); break; - } - break; - case WE_KEYPRESS: /* Return to main menu on pressing 'Enter' */ - if (e->keypress.keycode == WKC_RETURN) - _switch_mode = SM_MENU; - break; + case WE_CLICK: + switch (e->click.widget) { + case 3: DeleteWindow(w); break; + case 4: _switch_mode = SM_MENU; break; + } + break; + case WE_KEYPRESS: /* Return to main menu on pressing 'Enter' */ + if (e->keypress.keycode == WKC_RETURN) _switch_mode = SM_MENU; + break; } } diff --git a/landscape.c b/landscape.c index 8309b18d1..d213fc913 100644 --- a/landscape.c +++ b/landscape.c @@ -208,16 +208,16 @@ void DrawFoundation(TileInfo *ti, uint f) uint32 sprite_base = SPR_SLOPES_BASE-14; TileInfo ti2; - FindLandscapeHeight(&ti2, ti->x, ti->y-1); - if(hasFoundation( &ti2, true )) sprite_base += 22; // foundation in NW direction - FindLandscapeHeight(&ti2, ti->x-1, ti->y); - if(hasFoundation( &ti2, false )) sprite_base += 22*2; // foundation in NE direction + FindLandscapeHeight(&ti2, ti->x, ti->y - 1); + if (hasFoundation(&ti2, true)) sprite_base += 22; // foundation in NW direction + FindLandscapeHeight(&ti2, ti->x - 1, ti->y); + if (hasFoundation(&ti2, false)) sprite_base += 22 * 2; // foundation in NE direction if (f < 15) { // leveled foundation if (sprite_base < SPR_SLOPES_BASE) sprite_base = SPR_FOUNDATION_BASE + 1; // use original slope sprites - AddSortableSpriteToDraw(f-1 + sprite_base, ti->x, ti->y, 16, 16, 7, ti->z); + AddSortableSpriteToDraw(f - 1 + sprite_base, ti->x, ti->y, 16, 16, 7, ti->z); ti->z += 8; ti->tileh = 0; OffsetGroundSprite(31, 1); diff --git a/main_gui.c b/main_gui.c index 4ccc585b5..8945f3de6 100644 --- a/main_gui.c +++ b/main_gui.c @@ -47,7 +47,7 @@ extern bool GenerateTowns(void); void HandleOnEditTextCancel(void) { - switch(_rename_what) { + switch (_rename_what) { #ifdef ENABLE_NETWORK case 4: NetworkDisconnect(); @@ -119,13 +119,11 @@ void HandleOnEditText(WindowEvent *e) * @return true if the button is clicked, false if it's unclicked */ - bool HandlePlacePushButton(Window *w, int widget, CursorID cursor, int mode, PlaceProc *placeproc) { uint32 mask = 1 << widget; - if (w->disabled_state & mask) - return false; + if (w->disabled_state & mask) return false; SndPlayFx(SND_15_BEEP); SetWindowDirty(w); @@ -148,14 +146,11 @@ void CcPlaySound10(bool success, TileIndex tile, uint32 p1, uint32 p2) } -typedef void ToolbarButtonProc(Window *w); - static void ToolbarPauseClick(Window *w) { if (_networking && !_network_server) return; // only server can pause the game - if (DoCommandP(0, _pause ? 0 : 1, 0, NULL, CMD_PAUSE)) - SndPlayFx(SND_15_BEEP); + if (DoCommandP(0, _pause ? 0 : 1, 0, NULL, CMD_PAUSE)) SndPlayFx(SND_15_BEEP); } static void ToolbarFastForwardClick(Window *w) @@ -164,8 +159,6 @@ static void ToolbarFastForwardClick(Window *w) SndPlayFx(SND_15_BEEP); } -typedef void MenuClickedProc(int index); - static void MenuClickSettings(int index) { @@ -389,9 +382,9 @@ void ShowRenameWaypointWindow(const Waypoint *wp) static void SelectSignTool(void) { - if (_cursor.sprite == SPR_CURSOR_SIGN) + if (_cursor.sprite == SPR_CURSOR_SIGN) { ResetObjectToPlace(); - else { + } else { SetObjectToPlace(SPR_CURSOR_SIGN, 1, 1, 0); _place_proc = PlaceProc_Sign; } @@ -431,6 +424,9 @@ static void MenuClickHelp(int index) } } + +typedef void MenuClickedProc(int index); + static MenuClickedProc * const _menu_clicked_procs[] = { NULL, /* 0 */ NULL, /* 1 */ @@ -463,7 +459,7 @@ static MenuClickedProc * const _menu_clicked_procs[] = { static void MenuWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { int count,sel; int x,y; @@ -519,16 +515,15 @@ static void MenuWndProc(Window *w, WindowEvent *e) action_id = WP(w,menu_d).action_id; DeleteWindow(w); - if (index >= 0) - _menu_clicked_procs[action_id](index); + if (index >= 0) _menu_clicked_procs[action_id](index); break; } + case WE_POPUPMENU_OVER: { int index = GetMenuItemIndex(w, e->popupmenu.pt.x, e->popupmenu.pt.y); - if (index == -1 || index == WP(w,menu_d).sel_index) - return; + if (index == -1 || index == WP(w,menu_d).sel_index) return; WP(w,menu_d).sel_index = index; SetWindowDirty(w); @@ -555,10 +550,7 @@ static int GetPlayerIndexFromMenu(int index) const Player* p; FOR_ALL_PLAYERS(p) { - if (p->is_active) { - if (--index < 0) - return p->index; - } + if (p->is_active && --index < 0) return p->index; } } return -1; @@ -566,19 +558,15 @@ static int GetPlayerIndexFromMenu(int index) static void UpdatePlayerMenuHeight(Window *w) { - int num = 0; + uint num = 0; const Player* p; FOR_ALL_PLAYERS(p) { - if (p->is_active) - num++; + if (p->is_active) num++; } - // Increase one to fit in PlayerList in the menu when - // in network - if (_networking && WP(w,menu_d).main_button == 9) { - num++; - } + // Increase one to fit in PlayerList in the menu when in network + if (_networking && WP(w,menu_d).main_button == 9) num++; if (WP(w,menu_d).item_count != num) { WP(w,menu_d).item_count = num; @@ -594,7 +582,7 @@ extern void DrawPlayerIcon(int p, int x, int y); static void PlayerMenuWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { int x,y; byte sel, color; @@ -657,10 +645,10 @@ static void PlayerMenuWndProc(Window *w, WindowEvent *e) // We have a new entry at the top of the list of menu 9 when networking // so keep that in count if (_networking && WP(w,menu_d).main_button == 9) { - if (index > 0) - index = GetPlayerIndexFromMenu(index - 1) + 1; - } else + if (index > 0) index = GetPlayerIndexFromMenu(index - 1) + 1; + } else { index = GetPlayerIndexFromMenu(index); + } if (index < 0) { Window *w2 = FindWindowById(WC_MAIN_TOOLBAR,0); @@ -684,13 +672,12 @@ static void PlayerMenuWndProc(Window *w, WindowEvent *e) // We have a new entry at the top of the list of menu 9 when networking // so keep that in count if (_networking && WP(w,menu_d).main_button == 9) { - if (index > 0) - index = GetPlayerIndexFromMenu(index - 1) + 1; - } else + if (index > 0) index = GetPlayerIndexFromMenu(index - 1) + 1; + } else { index = GetPlayerIndexFromMenu(index); + } - if (index == -1 || index == WP(w,menu_d).sel_index) - return; + if (index == -1 || index == WP(w,menu_d).sel_index) return; WP(w,menu_d).sel_index = index; SetWindowDirty(w); @@ -740,11 +727,12 @@ static Window *PopupMainPlayerToolbMenu(Window *w, int x, int main_button, int g WP(w,menu_d).item_count = 0; WP(w,menu_d).sel_index = (_local_player != OWNER_SPECTATOR) ? _local_player : GetPlayerIndexFromMenu(0); if (_networking && main_button == 9) { - if (_local_player != OWNER_SPECTATOR) + if (_local_player != OWNER_SPECTATOR) { WP(w,menu_d).sel_index++; - else + } else { /* Select client list by default for spectators */ WP(w,menu_d).sel_index = 0; + } } WP(w,menu_d).action_id = main_button; WP(w,menu_d).main_button = main_button; @@ -809,8 +797,10 @@ static void ToolbarTrainClick(Window *w) { const Vehicle* v; int dis = -1; - FOR_ALL_VEHICLES(v) + + FOR_ALL_VEHICLES(v) { if (v->type == VEH_Train && v->subtype == TS_Front_Engine) CLRBIT(dis, v->owner); + } PopupMainPlayerToolbMenu(w, 310, 13, dis); } @@ -818,8 +808,10 @@ static void ToolbarRoadClick(Window *w) { const Vehicle* v; int dis = -1; - FOR_ALL_VEHICLES(v) + + FOR_ALL_VEHICLES(v) { if (v->type == VEH_Road) CLRBIT(dis, v->owner); + } PopupMainPlayerToolbMenu(w, 332, 14, dis); } @@ -827,8 +819,10 @@ static void ToolbarShipClick(Window *w) { const Vehicle* v; int dis = -1; - FOR_ALL_VEHICLES(v) + + FOR_ALL_VEHICLES(v) { if (v->type == VEH_Ship) CLRBIT(dis, v->owner); + } PopupMainPlayerToolbMenu(w, 354, 15, dis); } @@ -836,8 +830,10 @@ static void ToolbarAirClick(Window *w) { const Vehicle* v; int dis = -1; - FOR_ALL_VEHICLES(v) + + FOR_ALL_VEHICLES(v) { if (v->type == VEH_Aircraft) CLRBIT(dis, v->owner); + } PopupMainPlayerToolbMenu(w, 376, 16, dis); } @@ -882,15 +878,17 @@ bool DoZoomInOutWindow(int how, Window *w) // routine to disable/enable the zoom buttons. Didn't know where to place these otherwise { - Window *wt = NULL; + Window* wt = NULL; + switch (w->window_class) { - case WC_MAIN_WINDOW: - wt = FindWindowById(WC_MAIN_TOOLBAR, 0); - break; - case WC_EXTRA_VIEW_PORT: - wt = FindWindowById(WC_EXTRA_VIEW_PORT, w->window_number); - button = 5; - break; + case WC_MAIN_WINDOW: + wt = FindWindowById(WC_MAIN_TOOLBAR, 0); + break; + + case WC_EXTRA_VIEW_PORT: + wt = FindWindowById(WC_EXTRA_VIEW_PORT, w->window_number); + button = 5; + break; } assert(wt); @@ -1003,8 +1001,7 @@ static void ToolbarScenDateBackward(Window *w) HandleButtonClick(w, 6); InvalidateWidget(w, 5); - if (_date > MinDate) - SetDate(ConvertYMDToDay(_cur_year - 1, 0, 1)); + if (_date > MinDate) SetDate(ConvertYMDToDay(_cur_year - 1, 0, 1)); } _left_button_clicked = false; } @@ -1016,8 +1013,7 @@ static void ToolbarScenDateForward(Window *w) HandleButtonClick(w, 7); InvalidateWidget(w, 5); - if (_date < MaxDate) - SetDate(ConvertYMDToDay(_cur_year + 1, 0, 1)); + if (_date < MaxDate) SetDate(ConvertYMDToDay(_cur_year + 1, 0, 1)); } _left_button_clicked = false; } @@ -1070,7 +1066,7 @@ static void ResetLandscape(void) _random_seeds[0][0] = InteractiveRandom(); _random_seeds[0][1] = InteractiveRandom(); - GenerateWorld(1, 1<<_patches.map_x, 1<<_patches.map_y); + GenerateWorld(1, 1 << _patches.map_x, 1 << _patches.map_y); MarkWholeScreenDirty(); } @@ -1088,13 +1084,17 @@ static void AskResetLandscapeWndProc(Window *w, WindowEvent *e) { uint mode = w->window_number; - switch(e->event) { + switch (e->event) { case WE_PAINT: DrawWindowWidgets(w); - DrawStringMultiCenter(90, 38, mode?STR_022D_ARE_YOU_SURE_YOU_WANT_TO:STR_GENERATE_RANDOM_LANDSCAPE , 168); + DrawStringMultiCenter( + 90, 38, + mode ? STR_022D_ARE_YOU_SURE_YOU_WANT_TO : STR_GENERATE_RANDOM_LANDSCAPE, + 168 + ); break; case WE_CLICK: - switch(e->click.widget) { + switch (e->click.widget) { case 3: DeleteWindow(w); break; @@ -1110,7 +1110,6 @@ static void AskResetLandscapeWndProc(Window *w, WindowEvent *e) SndPlayFx(SND_15_BEEP); _switch_mode = SM_GENRANDLAND; } - break; } break; @@ -1358,7 +1357,7 @@ static void ScenEditLandGenWndProc(Window *w, WindowEvent *e) break; case WE_KEYPRESS: { - int i; + uint i; for (i = 0; i != lengthof(_editor_terraform_keycodes); i++) { if (e->keypress.keycode == _editor_terraform_keycodes[i]) { @@ -1471,7 +1470,7 @@ static const Widget _scen_edit_town_gen_widgets[] = { static void ScenEditTownGenWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: w->click_state = (w->click_state & ~(1<<7 | 1<<8 | 1<<9) ) | (1 << (_new_town_size + 7)); DrawWindowWidgets(w); @@ -1493,8 +1492,9 @@ static void ScenEditTownGenWndProc(Window *w, WindowEvent *e) if (t == NULL) { ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0); - } else + } else { ScrollMainWindowToTile(t->xy); + } break; } @@ -1503,8 +1503,9 @@ static void ScenEditTownGenWndProc(Window *w, WindowEvent *e) _generating_world = true; _game_mode = GM_NORMAL; // little hack to avoid towns of the same size - if (!GenerateTowns()) - ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0); + if (!GenerateTowns()) { + ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0); + } _generating_world = false; _game_mode = GM_EDITOR; @@ -1642,8 +1643,7 @@ static bool AnyTownExists(void) const Town* t; FOR_ALL_TOWNS(t) { - if (t->xy) - return true; + if (t->xy != 0) return true; } return false; } @@ -1695,13 +1695,13 @@ static void ScenEditIndustryWndProc(Window *w, WindowEvent *e) break; case WE_CLICK: - if ((button=e->click.widget) == 3) { + if (e->click.widget == 3) { HandleButtonClick(w, 3); - if (!AnyTownExists()) { - ShowErrorMessage(STR_0286_MUST_BUILD_TOWN_FIRST, STR_CAN_T_GENERATE_INDUSTRIES, 0, 0); - return; - } + if (!AnyTownExists()) { + ShowErrorMessage(STR_0286_MUST_BUILD_TOWN_FIRST, STR_CAN_T_GENERATE_INDUSTRIES, 0, 0); + return; + } _generating_world = true; GenerateIndustries(); @@ -1729,7 +1729,7 @@ static void ScenEditIndustryWndProc(Window *w, WindowEvent *e) _ignore_restrictions = true; if (!TryBuildIndustry(e->place.tile,type)) { SetDParam(0, type + STR_4802_COAL_MINE); - ShowErrorMessage(_error_message, STR_0285_CAN_T_BUILD_HERE,e->place.pt.x, e->place.pt.y); + ShowErrorMessage(_error_message, STR_0285_CAN_T_BUILD_HERE, e->place.pt.x, e->place.pt.y); } _ignore_restrictions = false; _generating_world = false; @@ -1817,6 +1817,9 @@ static void ToolbarBtn_NULL(Window *w) { } + +typedef void ToolbarButtonProc(Window *w); + static ToolbarButtonProc* const _toolbar_button_procs[] = { ToolbarPauseClick, ToolbarFastForwardClick, @@ -1875,7 +1878,7 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e) case WE_KEYPRESS: { PlayerID local = (_local_player != OWNER_SPECTATOR) ? _local_player : 0; - switch(e->keypress.keycode) { + switch (e->keypress.keycode) { case WKC_F1: case WKC_PAUSE: ToolbarPauseClick(w); break; @@ -1924,7 +1927,6 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e) case WE_ON_EDIT_TEXT: HandleOnEditText(e); break; case WE_MOUSELOOP: - if (((w->click_state) & 1) != (uint)!!_pause) { w->click_state ^= (1 << 0); SetWindowDirty(w); @@ -2068,14 +2070,16 @@ static void ScenEditToolbarWndProc(Window *w, WindowEvent *e) switch(e->event) { case WE_PAINT: /* XXX look for better place for these */ - if (_date <= MinDate) + if (_date <= MinDate) { SETBIT(w->disabled_state, 6); - else + } else { CLRBIT(w->disabled_state, 6); - if (_date >= MaxDate) + } + if (_date >= MaxDate) { SETBIT(w->disabled_state, 7); - else + } else { CLRBIT(w->disabled_state, 7); + } // Draw brown-red toolbar bg. GfxFillRect(0, 0, w->width-1, w->height-1, 0xB2); @@ -2093,8 +2097,7 @@ static void ScenEditToolbarWndProc(Window *w, WindowEvent *e) break; case WE_CLICK: { - if (_game_mode == GM_MENU) - return; + if (_game_mode == GM_MENU) return; _scen_toolbar_button_procs[e->click.widget](w); } break; @@ -2111,8 +2114,8 @@ static void ScenEditToolbarWndProc(Window *w, WindowEvent *e) case WKC_F9: ToolbarScenPlaceSign(w); break; case WKC_F10: ShowMusicWindow(); break; case WKC_F11: PlaceLandBlockInfo(); break; - case WKC_CTRL | 'S': _make_screenshot = 1; break; - case WKC_CTRL | 'G': _make_screenshot = 2; break; + case WKC_CTRL | 'S': _make_screenshot = 1; break; + case WKC_CTRL | 'G': _make_screenshot = 2; break; case 'L': ShowEditorTerraformToolBar(); break; } break; } break; @@ -2176,20 +2179,19 @@ static bool DrawScrollingStatusText(const NewsItem *ni, int pos) s = buf; d = buffer; - for(;;s++) { - if (*s == 0) { - *d = 0; + for (;; s++) { + if (*s == '\0') { + *d = '\0'; break; } else if (*s == 0x0D) { d[0] = d[1] = d[2] = d[3] = ' '; - d+=4; + d += 4; } else if ((byte)*s >= ' ' && ((byte)*s < 0x88 || (byte)*s >= 0x99)) { *d++ = *s; } } - if (!FillDrawPixelInfo(&tmp_dpi, NULL, 141, 1, 358, 11)) - return true; + if (!FillDrawPixelInfo(&tmp_dpi, NULL, 141, 1, 358, 11)) return true; old_dpi = _cur_dpi; _cur_dpi = &tmp_dpi; @@ -2208,7 +2210,9 @@ static void StatusBarWndProc(Window *w, WindowEvent *e) DrawWindowWidgets(w); SetDParam(0, _date); - DrawStringCentered(70, 1, ((_pause||_patches.status_long_date)?STR_00AF:STR_00AE), 0); + DrawStringCentered( + 70, 1, (_pause || _patches.status_long_date) ? STR_00AF : STR_00AE, 0 + ); if (p != NULL) { // Draw player money @@ -2228,7 +2232,7 @@ static void StatusBarWndProc(Window *w, WindowEvent *e) if (!DrawScrollingStatusText(&_statusbar_news_item, WP(w,def_d).data_1)) WP(w,def_d).data_1 = -1280; } else { - if (p) { + if (p != NULL) { // This is the default text SetDParam(0, p->name_1); SetDParam(1, p->name_2); @@ -2334,65 +2338,64 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) { break; } - // check to see if Command-Q has been pressed on a Mac - // must be done before checking if we are at the main menu - if ( (e->keypress.keycode == ('Q' | WKC_CTRL)) || (e->keypress.keycode == ('Q' | WKC_META)) ) - { - AskExitGame(); + switch (e->keypress.keycode) { + case 'Q' | WKC_CTRL: + case 'Q' | WKC_META: + AskExitGame(); + break; } if (_game_mode == GM_MENU) break; switch (e->keypress.keycode) { - case 'C': case 'Z': { - Point pt = GetTileBelowCursor(); - if (pt.x != -1) { - ScrollMainWindowTo(pt.x, pt.y); - if (e->keypress.keycode == 'Z') - MaxZoomIn(); + case 'C': + case 'Z': { + Point pt = GetTileBelowCursor(); + if (pt.x != -1) { + ScrollMainWindowTo(pt.x, pt.y); + if (e->keypress.keycode == 'Z') MaxZoomIn(); + } + break; } - break; - } - case WKC_ESC: ResetObjectToPlace(); break; - case WKC_DELETE: DeleteNonVitalWindows(); break; - case WKC_DELETE | WKC_SHIFT: DeleteAllNonVitalWindows(); break; - case 'R' | WKC_CTRL: MarkWholeScreenDirty(); break; + case WKC_ESC: ResetObjectToPlace(); break; + case WKC_DELETE: DeleteNonVitalWindows(); break; + case WKC_DELETE | WKC_SHIFT: DeleteAllNonVitalWindows(); break; + case 'R' | WKC_CTRL: MarkWholeScreenDirty(); break; + #if defined(_DEBUG) - case '0' | WKC_ALT: /* Crash the game */ - *(byte*)0 = 0; - break; - case '1' | WKC_ALT: /* Gimme money */ - /* Server can not cheat in advertise mode either! */ - #ifdef ENABLE_NETWORK - if (!_networking || !_network_server || !_network_advertise) - #endif - DoCommandP(0, -10000000, 0, NULL, CMD_MONEY_CHEAT); - break; - case '2' | WKC_ALT: /* Update the coordinates of all station signs */ - UpdateAllStationVirtCoord(); - break; - case '3' | WKC_ALT: - case '4' | WKC_ALT: - break; + case '0' | WKC_ALT: /* Crash the game */ + *(byte*)0 = 0; + break; + + case '1' | WKC_ALT: /* Gimme money */ + /* Server can not cheat in advertise mode either! */ +#ifdef ENABLE_NETWORK + if (!_networking || !_network_server || !_network_advertise) #endif + DoCommandP(0, -10000000, 0, NULL, CMD_MONEY_CHEAT); + break; - case 'X': - _display_opt ^= DO_TRANS_BUILDINGS; - MarkWholeScreenDirty(); - break; + case '2' | WKC_ALT: /* Update the coordinates of all station signs */ + UpdateAllStationVirtCoord(); + break; +#endif + + case 'X': + _display_opt ^= DO_TRANS_BUILDINGS; + MarkWholeScreenDirty(); + break; #ifdef ENABLE_NETWORK - case WKC_RETURN: case 'T' | WKC_SHIFT: - if (_networking) ShowNetworkChatQueryWindow(DESTTYPE_BROADCAST, 0); - break; + case WKC_RETURN: case 'T' | WKC_SHIFT: + if (_networking) ShowNetworkChatQueryWindow(DESTTYPE_BROADCAST, 0); + break; #endif - default: return; + default: return; } e->keypress.cont = false; break; - } } @@ -2402,11 +2405,11 @@ extern void ShowJoinStatusWindowAfterJoin(void); void SetupColorsAndInitialWindow(void) { - int i; + uint i; Window *w; int width,height; - for(i=0; i!=16; i++) { + for (i = 0; i != 16; i++) { const byte* b = GetNonSprite(0x307 + i); assert(b); @@ -2417,7 +2420,7 @@ void SetupColorsAndInitialWindow(void) height = _screen.height; // XXX: these are not done - switch(_game_mode) { + switch (_game_mode) { case GM_MENU: w = AllocateWindow(0, 0, width, height, MainWindowWndProc, WC_MAIN_WINDOW, NULL); AssignWindowViewport(w, 0, 0, width, height, TileXY(32, 32), 0); diff --git a/misc_gui.c b/misc_gui.c index c40f3bc3f..8e9bfbb86 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -86,7 +86,10 @@ static void LandInfoWndProc(Window *w, WindowEvent *e) for (i = 0; i < NUM_CARGO; ++i) { if (lid->ac[i] > 0) { // Add a comma between each item. - if (found) { *p++ = ','; *p++ = ' '; } + if (found) { + *p++ = ','; + *p++ = ' '; + } found = true; // If the accepted value is less than 8, show it in 1/8:ths @@ -101,8 +104,7 @@ static void LandInfoWndProc(Window *w, WindowEvent *e) } } - if (found) - DrawStringMultiCenter(140, 76, BindCString(buf), 276); + if (found) DrawStringMultiCenter(140, 76, BindCString(buf), 276); } if (lid->td.build_date != 0) { @@ -221,7 +223,7 @@ static const char *credits[] = { static void AboutWindowProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_CREATE: /* Set up window counter and start position of scroller */ WP(w, scroller_d).counter = 0; WP(w, scroller_d).height = w->height - 40; @@ -292,7 +294,7 @@ static const uint32 _tree_sprites[] = { static void BuildTreesWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { int x,y; int i, count; @@ -308,24 +310,24 @@ static void BuildTreesWndProc(Window *w, WindowEvent *e) DrawSprite(_tree_sprites[i], x, y); x += 35; if (!(++i & 3)) { - x -= 35*4; + x -= 35 * 4; y += 47; } } while (--count); } break; case WE_CLICK: { - int wid; + int wid = e->click.widget; - switch(wid=e->click.widget) { + switch (wid) { case 0: ResetObjectToPlace(); - return; + break; + case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:case 12: case 13: case 14: - if ( (uint)(wid-3) >= (uint)WP(w,tree_d).count) - return; + if (wid - 3 >= WP(w,tree_d).count) break; if (HandlePlacePushButton(w, wid, SPR_CURSOR_TREE, 1, NULL)) _tree_to_plant = WP(w,tree_d).base + wid - 3; @@ -462,7 +464,7 @@ static const Widget _errmsg_face_widgets[] = { static void ErrmsgWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: COPY_IN_DPARAM(0, _errmsg_decode_params, lengthof(_errmsg_decode_params)); DrawWindowWidgets(w); @@ -498,18 +500,17 @@ static void ErrmsgWndProc(Window *w, WindowEvent *e) break; case WE_MOUSELOOP: - if (_right_button_down) - DeleteWindow(w); + if (_right_button_down) DeleteWindow(w); break; + case WE_4: - if (!--_errmsg_duration) - DeleteWindow(w); + if (--_errmsg_duration == 0) DeleteWindow(w); break; - case WE_DESTROY: { + + case WE_DESTROY: SetRedErrorSquare(0); _switch_mode_errorstr = INVALID_STRING_ID; break; - } case WE_KEYPRESS: if (e->keypress.keycode == WKC_SPACE) { @@ -619,18 +620,16 @@ static const Widget _tooltips_widgets[] = { static void TooltipsWndProc(Window *w, WindowEvent *e) { + switch (e->event) { + case WE_PAINT: + GfxFillRect(0, 0, w->width - 1, w->height - 1, 0); + GfxFillRect(1, 1, w->width - 2, w->height - 2, 0x44); + DrawStringMultiCenter((w->width >> 1), (w->height >> 1) - 5, WP(w,tooltips_d).string_id, 197); + break; - switch(e->event) { - case WE_PAINT: { - GfxFillRect(0, 0, w->width - 1, w->height - 1, 0); - GfxFillRect(1, 1, w->width - 2, w->height - 2, 0x44); - DrawStringMultiCenter((w->width>>1), (w->height>>1)-5, WP(w,tooltips_d).string_id, 197); - break; - } - case WE_MOUSELOOP: - if (!_right_button_down) - DeleteWindow(w); - break; + case WE_MOUSELOOP: + if (!_right_button_down) DeleteWindow(w); + break; } } @@ -641,8 +640,7 @@ void GuiShowTooltips(StringID string_id) int right,bottom; int x,y; - if (string_id == 0) - return; + if (string_id == 0) return; w = FindWindowById(WC_TOOLTIPS, 0); if (w != NULL) { @@ -941,8 +939,7 @@ bool HandleCaret(Textbuf *tb) void HandleEditBox(Window *w, int wid) { - if (HandleCaret(&WP(w, querystr_d).text)) - InvalidateWidget(w, wid); + if (HandleCaret(&WP(w, querystr_d).text)) InvalidateWidget(w, wid); } void DrawEditBox(Window *w, int wid) @@ -1012,7 +1009,7 @@ press_ok:; } break; case WE_KEYPRESS: { - switch(HandleEditBoxKey(w, 5, e)) { + switch (HandleEditBoxKey(w, 5, e)) { case 1: // Return goto press_ok; case 2: // Escape @@ -1240,12 +1237,16 @@ static void SaveLoadDlgWndProc(Window *w, WindowEvent *e) case WE_CREATE: { /* Set up OPENTTD button */ o_dir.type = FIOS_TYPE_DIRECT; switch (_saveload_mode) { - case SLD_SAVE_GAME: case SLD_LOAD_GAME: + case SLD_SAVE_GAME: + case SLD_LOAD_GAME: ttd_strlcpy(&o_dir.name[0], _path.save_dir, sizeof(o_dir.name)); break; - case SLD_SAVE_SCENARIO: case SLD_LOAD_SCENARIO: + + case SLD_SAVE_SCENARIO: + case SLD_LOAD_SCENARIO: ttd_strlcpy(&o_dir.name[0], _path.scenario_dir, sizeof(o_dir.name)); break; + default: ttd_strlcpy(&o_dir.name[0], _path.personal_dir, sizeof(o_dir.name)); } @@ -1308,12 +1309,12 @@ static void SaveLoadDlgWndProc(Window *w, WindowEvent *e) char *name; const FiosItem *file; - if (y < 0 || (y += w->vscroll.pos) >= w->vscroll.count) - return; + if (y < 0 || (y += w->vscroll.pos) >= w->vscroll.count) return; file = _fios_list + y; - if ((name = FiosBrowseTo(file)) != NULL) { + name = FiosBrowseTo(file); + if (name != NULL) { if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) { _switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_SCENARIO : SM_LOAD; @@ -1474,8 +1475,9 @@ void ShowSaveLoadDialog(int mode) // pause is only used in single-player, non-editor mode, non-menu mode. It // will be unpaused in the WE_DESTROY event handler. - if(_game_mode != GM_MENU && !_networking && _game_mode != GM_EDITOR) + if (_game_mode != GM_MENU && !_networking && _game_mode != GM_EDITOR) { DoCommandP(0, 1, 0, NULL, CMD_PAUSE); + } BuildFileList(); @@ -1500,9 +1502,11 @@ static const Widget _select_scenario_widgets[] = { { WIDGETS_END}, }; -static void SelectScenarioWndProc(Window *w, WindowEvent *e) { +static void SelectScenarioWndProc(Window* w, WindowEvent* e) +{ const int list_start = 45; - switch(e->event) { + + switch (e->event) { case WE_PAINT: { int y,pos; @@ -1642,8 +1646,8 @@ static int32 ClickMoneyCheat(int32 p1, int32 p2) // p1 player to set to, p2 is -1 or +1 (down/up) static int32 ClickChangePlayerCheat(int32 p1, int32 p2) { - while(p1 >= 0 && p1 < MAX_PLAYERS) { - if (_players[p1].is_active) { + while (p1 >= 0 && p1 < MAX_PLAYERS) { + if (_players[p1].is_active) { _local_player = p1; MarkWholeScreenDirty(); return _local_player; @@ -1657,8 +1661,8 @@ static int32 ClickChangePlayerCheat(int32 p1, int32 p2) // p1 -1 or +1 (down/up) static int32 ClickChangeClimateCheat(int32 p1, int32 p2) { - if(p1==-1) p1 = 3; - if(p1==4) p1 = 0; + if (p1 == -1) p1 = 3; + if (p1 == 4) p1 = 0; _opt.landscape = p1; GfxLoadSprites(); MarkWholeScreenDirty(); @@ -1673,7 +1677,7 @@ static int32 ClickChangeDateCheat(int32 p1, int32 p2) YearMonthDay ymd; ConvertDayToYMD(&ymd, _date); - if((ymd.year==0 && p2==-1) || (ymd.year==170 && p2==1)) return _cur_year; + if ((ymd.year == 0 && p2 == -1) || (ymd.year == 170 && p2 == 1)) return _cur_year; SetDate(ConvertYMDToDay(_cur_year + p2, ymd.month, ymd.day)); EnginesMonthlyLoop(); @@ -1761,11 +1765,9 @@ extern void DrawPlayerIcon(int p, int x, int y); static void CheatsWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { int clk = WP(w,def_d).data_1; - const CheatEntry *ce = &_cheats_ui[0]; - int32 val; int x, y; int i; @@ -1773,53 +1775,55 @@ static void CheatsWndProc(Window *w, WindowEvent *e) DrawStringMultiCenter(200, 25, STR_CHEATS_WARNING, 350); - x=0; - y=45; + x = 0; + y = 45; + + for (i = 0; i != lengthof(_cheats_ui); i++) { + const CheatEntry* ce = &_cheats_ui[i]; - for(i=0; i!=lengthof(_cheats_ui); i++,ce++) { DrawSprite((*ce->been_used) ? SPR_BOX_CHECKED : SPR_BOX_EMPTY, x + 5, y + 2); if (ce->type == CE_BOOL) { - DrawFrameRect(x+20, y+1, x+30+9, y+9, (*(bool*)ce->variable) ? 6 : 4, (*(bool*)ce->variable) ? FR_LOWERED : 0); + DrawFrameRect(x + 20, y + 1, x + 30 + 9, y + 9, (*(bool*)ce->variable) ? 6 : 4, (*(bool*)ce->variable) ? FR_LOWERED : 0); SetDParam(0, *(bool*)ce->variable ? STR_CONFIG_PATCHES_ON : STR_CONFIG_PATCHES_OFF); - } else if (ce->type == CE_CLICK) { - DrawFrameRect(x+20, y+1, x+30+9, y+9, 0, (WP(w,def_d).data_1 == i*2+1) ? FR_LOWERED : 0); - if (i == 0) - SetDParam64(0, (int64) 10000000); - else + DrawFrameRect(x + 20, y + 1, x + 30 + 9, y + 9, 0, (WP(w,def_d).data_1 == i * 2 + 1) ? FR_LOWERED : 0); + if (i == 0) { + SetDParam64(0, 10000000); + } else { SetDParam(0, false); - + } } else { - DrawFrameRect(x+20, y+1, x+20+9, y+9, 3, clk == i*2+1 ? FR_LOWERED : 0); - DrawFrameRect(x+30, y+1, x+30+9, y+9, 3, clk == i*2+2 ? FR_LOWERED : 0); - DrawStringCentered(x+25, y+1, STR_6819, 0); - DrawStringCentered(x+35, y+1, STR_681A, 0); + int32 val; + + DrawFrameRect(x + 20, y + 1, x + 20 + 9, y + 9, 3, clk == i * 2 + 1 ? FR_LOWERED : 0); + DrawFrameRect(x + 30, y + 1, x + 30 + 9, y + 9, 3, clk == i * 2 + 2 ? FR_LOWERED : 0); + DrawStringCentered(x + 25, y + 1, STR_6819, 0); + DrawStringCentered(x + 35, y + 1, STR_681A, 0); val = ReadCE(ce); // set correct string for switch climate cheat - if(ce->str==STR_CHEAT_SWITCH_CLIMATE) - val += STR_TEMPERATE_LANDSCAPE; + if (ce->str == STR_CHEAT_SWITCH_CLIMATE) val += STR_TEMPERATE_LANDSCAPE; SetDParam(0, val); // display date for change date cheat - if(ce->str==STR_CHEAT_CHANGE_DATE) - SetDParam(0, _date); + if (ce->str == STR_CHEAT_CHANGE_DATE) SetDParam(0, _date); // draw colored flag for change player cheat - if(ce->str==STR_CHEAT_CHANGE_PLAYER) - DrawPlayerIcon(_current_player, 156, y+2); - + if (ce->str == STR_CHEAT_CHANGE_PLAYER) { + DrawPlayerIcon(_current_player, 156, y + 2); + } } - DrawString(50, y+1, ce->str, 0); + DrawString(50, y + 1, ce->str, 0); - y+=12; + y += 12; } break; } + case WE_CLICK: { const CheatEntry *ce; uint btn = (e->click.pt.y - 46) / 12; @@ -1827,19 +1831,17 @@ static void CheatsWndProc(Window *w, WindowEvent *e) uint x = e->click.pt.x; // not clicking a button? - if(!IS_INT_INSIDE(x, 20, 40) || btn>=lengthof(_cheats_ui)) - break; + if (!IS_INT_INSIDE(x, 20, 40) || btn >= lengthof(_cheats_ui)) break; ce = &_cheats_ui[btn]; oval = val = ReadCE(ce); *ce->been_used = true; - switch(ce->type) { + switch (ce->type) { case CE_BOOL: { val ^= 1; - if (ce->click_proc != NULL) - ce->click_proc(val, 0); + if (ce->click_proc != NULL) ce->click_proc(val, 0); break; } @@ -1861,11 +1863,11 @@ static void CheatsWndProc(Window *w, WindowEvent *e) } // take whatever the function returns - val = ce->click_proc(val, (x>=30) ? 1 : -1); - - if (val != oval) - WP(w,def_d).data_1 = btn * 2 + 1 + ((x>=30) ? 1 : 0); + val = ce->click_proc(val, (x >= 30) ? 1 : -1); + if (val != oval) { + WP(w,def_d).data_1 = btn * 2 + 1 + ((x >= 30) ? 1 : 0); + } break; } } @@ -1886,6 +1888,7 @@ static void CheatsWndProc(Window *w, WindowEvent *e) break; } } + static const WindowDesc _cheats_desc = { 240, 22, 400, 160, WC_CHEATS,0, diff --git a/music_gui.c b/music_gui.c index 353531b56..ace9ed942 100644 --- a/music_gui.c +++ b/music_gui.c @@ -20,11 +20,11 @@ static byte _cur_playlist[33]; static byte _playlist_all[] = { - 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0 }; static byte _playlist_old_style[] = { - 1, 8, 2, 9, 14, 15, 19, 13, 0, + 1, 8, 2, 9, 14, 15, 19, 13, 0 }; static byte _playlist_new_style[] = { @@ -45,7 +45,7 @@ static byte * const _playlists[] = { }; // Map the order of the song names to the numbers of the midi filenames -static const int midi_idx[] = { +static const byte midi_idx[] = { 0, // Tycoon DELUXE Theme 2, // Easy Driver 3, // Little Red Diesel @@ -78,8 +78,7 @@ static void SkipToPrevSong(void) byte t; // empty playlist - if (b[0] == 0) - return; + if (b[0] == 0) return; // find the end do p++; while (p[0] != 0); @@ -97,10 +96,12 @@ static void SkipToPrevSong(void) static void SkipToNextSong(void) { - byte *b = _cur_playlist, t; + byte* b = _cur_playlist; + byte t; - if ((t=b[0]) != 0) { - while (b[1]) { + t = b[0]; + if (t != 0) { + while (b[1] != 0) { b[0] = b[1]; b++; } @@ -165,8 +166,7 @@ static void PlayPlaylistSong(void) { if (_cur_playlist[0] == 0) { SelectSongToPlay(); - if (_cur_playlist[0] == 0) - return; + if (_cur_playlist[0] == 0) return; } _music_wnd_cursong = _cur_playlist[0]; DoPlaySong(); @@ -189,16 +189,16 @@ void MusicLoop(void) PlayPlaylistSong(); } - if (_song_is_active == false) - return; + if (_song_is_active == false) return; if (!_music_driver->is_song_playing()) { if (_game_mode != GM_MENU) { StopMusic(); SkipToNextSong(); PlayPlaylistSong(); - } else + } else { ResetMusic(); + } } } @@ -229,18 +229,18 @@ static void MusicTrackSelectionWndProc(Window *w, WindowEvent *e) DrawString(4, 23+(i-1)*6, (i < 10) ? STR_01EC_0 : STR_01ED, 0); } - for(i=0; i!=6; i++) { - DrawStringCentered(216, 45 + i*8, STR_01D5_ALL + i, (i==msf.playlist) ? 0xC : 0x10); + for (i = 0; i != 6; i++) { + DrawStringCentered(216, 45 + i * 8, STR_01D5_ALL + i, (i == msf.playlist) ? 0xC : 0x10); } DrawStringCentered(216, 45+8*6+16, STR_01F0_CLEAR, 0); DrawStringCentered(216, 45+8*6+16*2, STR_01F1_SAVE, 0); y = 23; - for(p = _playlists[msf.playlist],i=0; (i=*p) != 0; p++) { + for (p = _playlists[msf.playlist], i = 0; (i = *p) != 0; p++) { SetDParam(0, i); - SetDParam(2, i); SetDParam(1, SPECSTR_SONGNAME); + SetDParam(2, i); DrawString(252, y, (i < 10) ? STR_01EC_0 : STR_01ED, 0); y += 6; } @@ -248,19 +248,20 @@ static void MusicTrackSelectionWndProc(Window *w, WindowEvent *e) } case WE_CLICK: - switch(e->click.widget) { + switch (e->click.widget) { case 3: { /* add to playlist */ int y = (e->click.pt.y - 23) / 6; - int i; + uint i; byte *p; + if (msf.playlist < 4) return; - if ((uint)y >= NUM_SONGS_AVAILABLE) return; + if (!IS_INT_INSIDE(y, 0, NUM_SONGS_AVAILABLE)) return; p = _playlists[msf.playlist]; - for(i=0; i!=32; i++) { + for (i = 0; i != 32; i++) { if (p[i] == 0) { - p[i] = (byte)(y + 1); - p[i+1] = 0; + p[i] = y + 1; + p[i + 1] = 0; SetWindowDirty(w); SelectSongToPlay(); break; @@ -323,7 +324,7 @@ static void MusicWindowWndProc(Window *w, WindowEvent *e) { switch(e->event) { case WE_PAINT: { - int i,num; + uint i; StringID str; w->click_state |= 0x280; @@ -331,8 +332,7 @@ static void MusicWindowWndProc(Window *w, WindowEvent *e) GfxFillRect(187, 16, 200, 33, 0); - num = 8; - for (i=0; i!=num; i++) { + for (i = 0; i != 8; i++) { int color = 0xD0; if (i > 4) { color = 0xBF; @@ -340,17 +340,16 @@ static void MusicWindowWndProc(Window *w, WindowEvent *e) color = 0xB8; } } - GfxFillRect(187, 33 - i*2, 200, 33 - i*2, color); + GfxFillRect(187, 33 - i * 2, 200, 33 - i * 2, color); } GfxFillRect(60, 46, 239, 52, 0); - str = STR_01E3; - if (_song_is_active != 0 && _music_wnd_cursong != 0) { - str = STR_01E4_0; + if (_song_is_active == 0 || _music_wnd_cursong == 0) { + str = STR_01E3; + } else { SetDParam(0, _music_wnd_cursong); - if (_music_wnd_cursong >= 10) - str = STR_01E5; + str = (_music_wnd_cursong < 10) ? STR_01E4_0 : STR_01E5; } DrawString(62, 46, str, 0); @@ -365,8 +364,8 @@ static void MusicWindowWndProc(Window *w, WindowEvent *e) DrawString(60, 38, STR_01E8_TRACK_XTITLE, 0); - for(i=0; i!=6; i++) { - DrawStringCentered(25+i*50, 59, STR_01D5_ALL+i, msf.playlist == i ? 0xC : 0x10); + for (i = 0; i != 6; i++) { + DrawStringCentered(25 + i * 50, 59, STR_01D5_ALL + i, msf.playlist == i ? 0xC : 0x10); } DrawStringCentered(31, 43, STR_01E9_SHUFFLE, (msf.shuffle ? 0xC : 0x10)); @@ -1257,7 +1257,7 @@ static void NetworkGenerateUniqueId(void) /* Generate the MD5 hash */ md5_init(&state); - md5_append(&state, coding_string, strlen(coding_string)); + md5_append(&state, (const md5_byte_t*)coding_string, strlen(coding_string)); md5_finish(&state, digest); for (di = 0; di < 16; ++di) diff --git a/network_gui.c b/network_gui.c index c99e10538..e3dbac77e 100644 --- a/network_gui.c +++ b/network_gui.c @@ -62,11 +62,10 @@ static FiosItem *_selected_map = NULL; // to highlight slected map // called when a new server is found on the network void UpdateNetworkGameWindow(bool unselect) { - Window *w; - w = FindWindowById(WC_NETWORK_WINDOW, 0); + Window* w = FindWindowById(WC_NETWORK_WINDOW, 0); + if (w != NULL) { - if (unselect) - _selected_item = NULL; + if (unselect) _selected_item = NULL; w->vscroll.count = _network_game_count; SetWindowDirty(w); } @@ -123,8 +122,8 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) while (cur_item != NULL) { bool compatible = - !strncmp(cur_item->info.server_revision, _openttd_revision, NETWORK_REVISION_LENGTH - 1) || - !strncmp(cur_item->info.server_revision, NOREV_STRING, sizeof(cur_item->info.server_revision)); + strncmp(cur_item->info.server_revision, _openttd_revision, NETWORK_REVISION_LENGTH - 1) == 0 || + strncmp(cur_item->info.server_revision, NOREV_STRING, sizeof(cur_item->info.server_revision) == 0); if (cur_item == sel) GfxFillRect(11, y - 2, 218, y + 9, 10); // show highlighted item with a different colour @@ -138,10 +137,8 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) // only draw icons if the server is online if (cur_item->online) { - // draw a lock if the server is password protected. - if(cur_item->info.use_password) - DrawSprite(SPR_LOCK, 186, y-1); + if (cur_item->info.use_password) DrawSprite(SPR_LOCK, 186, y - 1); // draw red or green icon, depending on compatibility with server. DrawSprite(SPR_BLOT | (compatible ? PALETTE_TO_GREEN : PALETTE_TO_RED), 195, y); @@ -180,43 +177,43 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) SetDParam(0, sel->info.clients_on); SetDParam(1, sel->info.clients_max); DrawString(260, y, STR_NETWORK_CLIENTS, 2); // clients on the server / maximum slots - y+=10; + y += 10; if (sel->info.server_lang < NETWORK_NUM_LANGUAGES) { - SetDParam(0, STR_NETWORK_LANG_ANY+sel->info.server_lang); + SetDParam(0, STR_NETWORK_LANG_ANY + sel->info.server_lang); DrawString(260, y, STR_NETWORK_LANGUAGE, 2); // server language } - y+=10; + y += 10; if (sel->info.map_set < NUM_LANDSCAPE ) { - SetDParam(0, STR_TEMPERATE_LANDSCAPE+sel->info.map_set); + SetDParam(0, STR_TEMPERATE_LANDSCAPE + sel->info.map_set); DrawString(260, y, STR_NETWORK_TILESET, 2); // tileset } - y+=10; + y += 10; SetDParam(0, sel->info.map_width); SetDParam(1, sel->info.map_height); DrawString(260, y, STR_NETWORK_MAP_SIZE, 2); // map size - y+=10; + y += 10; SetDParamStr(0, sel->info.server_revision); DrawString(260, y, STR_NETWORK_SERVER_VERSION, 2); // server version - y+=10; + y += 10; SetDParamStr(0, sel->info.hostname); SetDParam(1, sel->port); DrawString(260, y, STR_NETWORK_SERVER_ADDRESS, 2); // server address - y+=10; + y += 10; SetDParam(0, sel->info.start_date); DrawString(260, y, STR_NETWORK_START_DATE, 2); // start date - y+=10; + y += 10; SetDParam(0, sel->info.game_date); DrawString(260, y, STR_NETWORK_CURRENT_DATE, 2); // current date - y+=10; + y += 10; - y+=2; + y += 2; if (strncmp(sel->info.server_revision, _openttd_revision, NETWORK_REVISION_LENGTH - 1) != 0) { if (strncmp(sel->info.server_revision, NOREV_STRING, sizeof(sel->info.server_revision)) != 0) @@ -224,10 +221,11 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) } else if (sel->info.clients_on == sel->info.clients_max) { // Show: server full, when clients_on == clients_max DrawStringMultiCenter(365, y, STR_NETWORK_SERVER_FULL, 2); // server full - } else if (sel->info.use_password) + } else if (sel->info.use_password) { DrawStringMultiCenter(365, y, STR_NETWORK_PASSWORD, 2); // password warning + } - y+=10; + y += 10; } } break; @@ -306,9 +304,7 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) break; case WE_MOUSELOOP: - if (_selected_field == 3) - HandleEditBox(w, 3); - + if (_selected_field == 3) HandleEditBox(w, 3); break; case WE_KEYPRESS: @@ -331,10 +327,11 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) if (HandleEditBoxKey(w, 3, e) == 1) break; // enter pressed // The name is only allowed when it starts with a letter! - if (_edit_str_buf[0] != '\0' && _edit_str_buf[0] != ' ') + if (_edit_str_buf[0] != '\0' && _edit_str_buf[0] != ' ') { ttd_strlcpy(_network_player_name, _edit_str_buf, lengthof(_network_player_name)); - else + } else { ttd_strlcpy(_network_player_name, "Player", lengthof(_network_player_name)); + } break; @@ -396,7 +393,7 @@ void ShowNetworkGameWindow(void) if (_first_time_show_network_game_window) { _first_time_show_network_game_window = false; // add all servers from the config file to our list - for (i=0; i != lengthof(_network_host_list); i++) { + for (i = 0; i != lengthof(_network_host_list); i++) { if (_network_host_list[i] == NULL) break; NetworkAddServer(_network_host_list[i]); } @@ -489,18 +486,22 @@ static void NetworkStartServerWindowWndProc(Window *w, WindowEvent *e) case WE_CLICK: _selected_field = e->click.widget; - switch(e->click.widget) { - case 0: case 15: /* Close 'X' | Cancel button */ + switch (e->click.widget) { + case 0: /* Close 'X' */ + case 15: /* Cancel button */ ShowNetworkGameWindow(); break; - case 4: { /* Set password button */ + + case 4: /* Set password button */ ShowQueryString(BindCString(_network_server_password), STR_NETWORK_SET_PASSWORD, 20, 250, w->window_class, w->window_number); - } break; + break; + case 5: { /* Select map */ int y = (e->click.pt.y - NSSWND_START) / NSSWND_ROWSIZE; - if ((y += w->vscroll.pos) >= w->vscroll.count) - return; + + y += w->vscroll.pos; + if (y >= w->vscroll.count) return; _selected_map = (y == 0) ? NULL : _fios_list + y - 1; SetWindowDirty(w); @@ -561,18 +562,15 @@ static void NetworkStartServerWindowWndProc(Window *w, WindowEvent *e) break; case WE_MOUSELOOP: - if (_selected_field == 3) - HandleEditBox(w, 3); + if (_selected_field == 3) HandleEditBox(w, 3); break; case WE_KEYPRESS: - if (_selected_field == 3) - HandleEditBoxKey(w, 3, e); + if (_selected_field == 3) HandleEditBoxKey(w, 3, e); break; case WE_ON_EDIT_TEXT: { - const char *b = e->edittext.str; - ttd_strlcpy(_network_server_password, b, sizeof(_network_server_password)); + ttd_strlcpy(_network_server_password, e->edittext.str, lengthof(_network_server_password)); _network_game_info.use_password = (_network_server_password[0] != '\0'); SetWindowDirty(w); } break; @@ -636,12 +634,12 @@ static void ShowNetworkStartServerWindow(void) static byte NetworkLobbyFindCompanyIndex(byte pos) { byte i; + /* Scroll through all _network_player_info and get the 'pos' item that is not empty */ for (i = 0; i < MAX_PLAYERS; i++) { if (_network_player_info[i].company_name[0] != '\0') { - if (pos-- == 0) - return i; + if (pos-- == 0) return i; } } @@ -650,7 +648,7 @@ static byte NetworkLobbyFindCompanyIndex(byte pos) static void NetworkLobbyWindowWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { int y = NET_PRC__OFFSET_TOP_WIDGET_COMPANY, pos; @@ -678,7 +676,7 @@ static void NetworkLobbyWindowWndProc(Window *w, WindowEvent *e) GfxFillRect(11, y - 1, 154, y + 10, 155); // show highlighted item with a different colour DoDrawString(_network_player_info[index].company_name, 13, y, 2); - if(_network_player_info[index].use_password != 0) + if (_network_player_info[index].use_password != 0) DrawSprite(SPR_LOCK, 135, y); /* If the company's income was positive puts a green dot else a red dot */ @@ -688,8 +686,7 @@ static void NetworkLobbyWindowWndProc(Window *w, WindowEvent *e) pos++; y += NET_PRC__SIZE_OF_ROW_COMPANY; - if (pos >= w->vscroll.cap) - break; + if (pos >= w->vscroll.cap) break; } // draw info about selected company @@ -1087,7 +1084,7 @@ static Window *PopupClientList(Window *w, int client_no, int x, int y) // Main handle for the popup static void ClientListPopupWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { int i, y, sel; byte colour; @@ -1141,7 +1138,7 @@ static void ClientListPopupWndProc(Window *w, WindowEvent *e) // Main handle for clientlist static void ClientListWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { NetworkClientInfo *ci; int y, i = 0; @@ -1166,8 +1163,9 @@ static void ClientListWndProc(Window *w, WindowEvent *e) if (ci->client_index == NETWORK_SERVER_INDEX) { DrawString(4, y, STR_NETWORK_SERVER, colour); - } else + } else { DrawString(4, y, STR_NETWORK_CLIENT, colour); + } // Filter out spectators if (ci->client_playas > 0 && ci->client_playas <= MAX_PLAYERS) @@ -1220,15 +1218,14 @@ static void ClientListWndProc(Window *w, WindowEvent *e) void ShowClientList(void) { Window *w = AllocateWindowDescFront(&_client_list_desc, 0); - if (w) - w->window_number = 0; + if (w != NULL) w->window_number = 0; } extern void SwitchMode(int new_mode); static void NetworkJoinStatusWindowWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { uint8 progress; // used for progress bar DrawWindowWidgets(w); @@ -1258,13 +1255,14 @@ static void NetworkJoinStatusWindowWndProc(Window *w, WindowEvent *e) } break; case WE_CLICK: - switch(e->click.widget) { - case 0: case 3: /* Close 'X' | Disconnect button */ - NetworkDisconnect(); - DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0); - SwitchMode(SM_MENU); - ShowNetworkGameWindow(); - break; + switch (e->click.widget) { + case 0: /* Close 'X' */ + case 3: /* Disconnect button */ + NetworkDisconnect(); + DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0); + SwitchMode(SM_MENU); + ShowNetworkGameWindow(); + break; } break; @@ -1311,6 +1309,7 @@ void ShowJoinStatusWindowAfterJoin(void) static void ChatWindowWndProc(Window *w, WindowEvent *e) { static bool closed = false; + switch (e->event) { case WE_CREATE: SendWindowMessage(WC_NEWS_WINDOW, 0, WE_CREATE, w->height, 0); @@ -1324,7 +1323,7 @@ static void ChatWindowWndProc(Window *w, WindowEvent *e) break; case WE_CLICK: - switch(e->click.widget) { + switch (e->click.widget) { case 3: DeleteWindow(w); break; // Cancel case 2: // Send press_ok:; diff --git a/news_gui.c b/news_gui.c index aae18aed4..443765c33 100644 --- a/news_gui.c +++ b/news_gui.c @@ -376,8 +376,7 @@ static void ShowNewspaper(NewsItem *ni) ni->duration = 555; sound = _news_sounds[ni->type]; - if (sound != 0) - SndPlayFx(sound); + if (sound != 0) SndPlayFx(sound); top = _screen.height; switch (ni->display_mode) { @@ -422,8 +421,7 @@ static void ShowTicker(const NewsItem *ni) _statusbar_news_item = *ni; w = FindWindowById(WC_STATUS_BAR, 0); - if (w != NULL) - WP(w, def_d).data_1 = 360; + if (w != NULL) WP(w, def_d).data_1 = 360; } @@ -441,8 +439,7 @@ static bool ReadyForNextItem(void) // Ticker message // Check if the status bar message is still being displayed? w = FindWindowById(WC_STATUS_BAR, 0); - if (w != NULL && WP(w, def_d).data_1 > -1280) - return false; + if (w != NULL && WP(w, const def_d).data_1 > -1280) return false; // Newspaper message // Wait until duration reaches 0 @@ -468,31 +465,33 @@ static void MoveToNexItem(void) ni = &_news_items[_current_news]; // check the date, don't show too old items - if (_date - _news_items_age[ni->type] > ni->date) - return; + if (_date - _news_items_age[ni->type] > ni->date) return; // execute the validation function to see if this item is still valid - if ( ni->isValid != NULL && !ni->isValid(ni->data_a, ni->data_b) ) - return; + if (ni->isValid != NULL && !ni->isValid(ni->data_a, ni->data_b)) return; + + switch (GetNewsDisplayValue(ni->type)) { + case 0: { /* Off - show nothing only a small reminder in the status bar */ + Window* w = FindWindowById(WC_STATUS_BAR, 0); - switch (GetNewsDisplayValue(ni->type)) { - case 0: { /* Off - show nothing only a small reminder in the status bar */ - Window *w = FindWindowById(WC_STATUS_BAR, 0); if (w != NULL) { WP(w, def_d).data_2 = 91; SetWindowDirty(w); } - } break; - case 1: /* Summary - show ticker, but if forced big, cascade to full */ - if (!(ni->flags & NF_FORCE_BIG)) { - ShowTicker(ni); - break; - } - /* Fallthrough */ - case 2: /* Full - show newspaper*/ - ShowNewspaper(ni); - break; - } + break; + } + + case 1: /* Summary - show ticker, but if forced big, cascade to full */ + if (!(ni->flags & NF_FORCE_BIG)) { + ShowTicker(ni); + break; + } + /* Fallthrough */ + + case 2: /* Full - show newspaper*/ + ShowNewspaper(ni); + break; + } } } @@ -501,8 +500,7 @@ void NewsLoop(void) // no news item yet if (_total_news == 0) return; - if (ReadyForNextItem()) - MoveToNexItem(); + if (ReadyForNextItem()) MoveToNexItem(); } /* Do a forced show of a specific message */ @@ -541,13 +539,13 @@ void ShowLastNewsMessage(void) recent news. Returns INVALID_NEWS if end of queue reached. */ static byte getNews(byte i) { - if (i >= _total_news) - return INVALID_NEWS; + if (i >= _total_news) return INVALID_NEWS; - if (_latest_news < i) + if (_latest_news < i) { i = _latest_news + MAX_NEWS - i; - else + } else { i = _latest_news - i; + } i %= MAX_NEWS; return i; @@ -636,10 +634,11 @@ static void MessageHistoryWndProc(Window *w, WindowEvent *e) p = y + w->vscroll.pos; if (p > _total_news - 1) break; - if (_latest_news >= p) + if (_latest_news >= p) { q = _latest_news - p; - else + } else { q = _latest_news + MAX_NEWS - p; + } ShowNewsMessage(q); break; @@ -69,16 +69,17 @@ bool _dbg_screen_rect; * caused by the user, i.e. missing files or fatal configuration errors. * Post-0.4.0 since Celestar doesn't want this in SVN before. --pasky */ -void CDECL error(const char *s, ...) { +void CDECL error(const char* s, ...) +{ va_list va; char buf[512]; + va_start(va, s); vsprintf(buf, s, va); va_end(va); ShowOSErrorBox(buf); - if (_video_driver) - _video_driver->stop(); + if (_video_driver != NULL) _video_driver->stop(); assert(0); exit(1); @@ -102,8 +103,7 @@ void *ReadFileToMem(const char *filename, size_t *lenp, size_t maxsize) size_t len; in = fopen(filename, "rb"); - if (in == NULL) - return NULL; + if (in == NULL) return NULL; fseek(in, 0, SEEK_END); len = ftell(in); @@ -178,12 +178,12 @@ static int MyGetOpt(MyGetOptData *md) { char *s,*r,*t; - if ((s=md->cont) != NULL) + s = md->cont; + if (s != NULL) goto md_continue_here; - while(true) { - if (--md->numleft < 0) - return -1; + for (;;) { + if (--md->numleft < 0) return -1; s = *md->argv++; if (*s == '-') { @@ -347,9 +347,9 @@ int ttd_main(int argc, char* argv[]) case 's': ttd_strlcpy(sounddriver, mgo.opt, sizeof(sounddriver)); break; case 'v': ttd_strlcpy(videodriver, mgo.opt, sizeof(videodriver)); break; case 'D': { - sprintf(musicdriver,"null"); - sprintf(sounddriver,"null"); - sprintf(videodriver,"dedicated"); + strcpy(musicdriver, "null"); + strcpy(sounddriver, "null"); + strcpy(videodriver, "dedicated"); dedicated = true; } break; case 'f': { @@ -364,23 +364,18 @@ int ttd_main(int argc, char* argv[]) network_conn = NULL; } break; case 'r': ParseResolution(resolution, mgo.opt); break; - case 'l': { - language = mgo.opt; - } break; - case 't': { - startdate = atoi(mgo.opt); - } break; + case 'l': language = mgo.opt; break; + case 't': startdate = atoi(mgo.opt); break; case 'd': { #if defined(WIN32) CreateConsole(); #endif - if (mgo.opt) - SetDebugString(mgo.opt); + if (mgo.opt != NULL) SetDebugString(mgo.opt); } break; case 'e': _switch_mode = SM_EDITOR; break; case 'i': _use_dos_palette = true; break; case 'g': - if (mgo.opt) { + if (mgo.opt != NULL) { strcpy(_file_to_saveload.name, mgo.opt); _switch_mode = SM_LOAD; } else @@ -598,7 +593,7 @@ static void MakeNewGame(void) // Copy in game options _opt_ptr = &_opt; - memcpy(_opt_ptr, &_opt_newgame, sizeof(GameOptions)); + memcpy(_opt_ptr, &_opt_newgame, sizeof(*_opt_ptr)); GfxLoadSprites(); @@ -643,7 +638,7 @@ static void MakeNewEditorWorld(void) SetupColorsAndInitialWindow(); // Startup the game system - GenerateWorld(1, 1<<_patches.map_x, 1<<_patches.map_y); + GenerateWorld(1, 1 << _patches.map_x, 1 << _patches.map_y); _local_player = OWNER_NONE; MarkWholeScreenDirty(); @@ -716,8 +711,9 @@ bool SafeSaveOrLoad(const char *filename, int mode, int newgm) } else if (r != SL_OK) { _game_mode = ogm; return false; - } else + } else { return true; + } } void SwitchMode(int new_mode) @@ -804,9 +800,9 @@ void SwitchMode(int new_mode) _generating_world = false; // delete all stations owned by a player DeleteAllPlayerStations(); - } else + } else { ShowErrorMessage(INVALID_STRING_ID, STR_4009_GAME_LOAD_FAILED, 0, 0); - + } break; } @@ -816,10 +812,11 @@ void SwitchMode(int new_mode) break; case SM_SAVE: /* Save game */ - if (SaveOrLoad(_file_to_saveload.name, SL_SAVE) != SL_OK) + if (SaveOrLoad(_file_to_saveload.name, SL_SAVE) != SL_OK) { ShowErrorMessage(INVALID_STRING_ID, STR_4007_GAME_SAVE_FAILED, 0, 0); - else + } else { DeleteWindowById(WC_SAVELOAD, 0); + } break; case SM_GENRANDLAND: /* Generate random land within scenario editor */ @@ -847,8 +844,7 @@ void StateGameLoop(void) // _frame_counter is increased somewhere else when in network-mode // Sidenote: _frame_counter is ONLY used for _savedump in non-MP-games // Should that not be deleted? If so, the next 2 lines can also be deleted - if (!_networking) - _frame_counter++; + if (!_networking) _frame_counter++; if (_savedump_path[0] && (uint)_frame_counter >= _savedump_first && (uint)(_frame_counter -_savedump_first) % _savedump_freq == 0 ) { char buf[100]; @@ -951,7 +947,6 @@ void GameLoop(void) int m; ThreadMsg message; - if ((message = OTTD_PollThreadEvent()) != 0) ProcessSentMessage(message); // autosave game? @@ -987,13 +982,14 @@ void GameLoop(void) IncreaseSpriteLRU(); InteractiveRandom(); - if (_scroller_click_timeout > 3) + if (_scroller_click_timeout > 3) { _scroller_click_timeout -= 3; - else + } else { _scroller_click_timeout = 0; + } _caret_timer += 3; - _timer_counter+=8; + _timer_counter += 8; CursorTick(); #ifdef ENABLE_NETWORK @@ -1016,11 +1012,9 @@ void GameLoop(void) StateGameLoop(); #endif /* ENABLE_NETWORK */ - if (!_pause && _display_opt&DO_FULL_ANIMATION) - DoPaletteAnimations(); + if (!_pause && _display_opt & DO_FULL_ANIMATION) DoPaletteAnimations(); - if (!_pause || _cheats.build_in_pause.value) - MoveAllTextEffects(); + if (!_pause || _cheats.build_in_pause.value) MoveAllTextEffects(); InputLoop(); @@ -1044,8 +1038,7 @@ static void ConvertTownOwner(void) for (tile = 0; tile != MapSize(); tile++) { if (IsTileType(tile, MP_STREET)) { - if (IsLevelCrossing(tile) && _m[tile].m3 & 0x80) - _m[tile].m3 = OWNER_TOWN; + if (IsLevelCrossing(tile) && _m[tile].m3 & 0x80) _m[tile].m3 = OWNER_TOWN; if (_m[tile].m1 & 0x80) SetTileOwner(tile, OWNER_TOWN); } else if (IsTileType(tile, MP_TUNNELBRIDGE)) { @@ -1057,20 +1050,20 @@ static void ConvertTownOwner(void) // before savegame version 4, the name of the company determined if it existed static void CheckIsPlayerActive(void) { - Player *p; + Player* p; + FOR_ALL_PLAYERS(p) { - if (p->name_1 != 0) { - p->is_active = true; - } + if (p->name_1 != 0) p->is_active = true; } } // since savegame version 4.1, exclusive transport rights are stored at towns static void UpdateExclusiveRights(void) { - Town *t; - FOR_ALL_TOWNS(t) if (t->xy != 0) { - t->exclusivity=(byte)-1; + Town* t; + + FOR_ALL_TOWNS(t) { + if (t->xy != 0) t->exclusivity = (byte)-1; } /* FIXME old exclusive rights status is not being imported (stored in s->blocked_months_obsolete) @@ -1113,9 +1106,8 @@ static void UpdateVoidTiles(void) static void UpdateSignOwner(void) { SignStruct *ss; - FOR_ALL_SIGNS(ss) { - ss->owner = OWNER_NONE; // no owner - } + + FOR_ALL_SIGNS(ss) ss->owner = OWNER_NONE; } extern void UpdateOldAircraft( void ); @@ -1128,24 +1120,16 @@ bool AfterLoadGame(uint version) Player *p; // in version 2.1 of the savegame, town owner was unified. - if (version <= 0x200) { - ConvertTownOwner(); - } + if (version <= 0x200) ConvertTownOwner(); // from version 4.1 of the savegame, exclusive rights are stored at towns - if (version <= 0x400) { - UpdateExclusiveRights(); - } + if (version <= 0x400) UpdateExclusiveRights(); // from version 4.2 of the savegame, currencies are in a different order - if (version <= 0x401) { - UpdateCurrencies(); - } + if (version <= 0x401) UpdateCurrencies(); // from version 6.0 of the savegame, signs have an "owner" - if (version <= 0x600) { - UpdateSignOwner(); - } + if (version <= 0x600) UpdateSignOwner(); /* In old version there seems to be a problem that water is owned by OWNER_NONE, not OWNER_WATER.. I can't replicate it for the current @@ -1178,15 +1162,12 @@ bool AfterLoadGame(uint version) AfterLoadVehicles(); // Update all waypoints - if (version < 0x0C00) - FixOldWaypoints(); + if (version < 0x0C00) FixOldWaypoints(); UpdateAllWaypointSigns(); // in version 2.2 of the savegame, we have new airports - if (version <= 0x201) { - UpdateOldAircraft(); - } + if (version <= 0x201) UpdateOldAircraft(); UpdateAllStationVirtCoord(); @@ -1195,8 +1176,7 @@ bool AfterLoadGame(uint version) UpdateAllSignVirtCoords(); // make sure there is a town in the game - if (_game_mode == GM_NORMAL && !ClosestTownFromTile(0, (uint)-1)) - { + if (_game_mode == GM_NORMAL && !ClosestTownFromTile(0, (uint)-1)) { _error_message = STR_NO_TOWN_IN_SCENARIO; return false; } @@ -1215,16 +1195,12 @@ bool AfterLoadGame(uint version) vp->virtual_width = vp->width << vp->zoom; vp->virtual_height = vp->height << vp->zoom; - // in version 4.0 of the savegame, is_active was introduced to determine // if a player does exist, rather then checking name_1 - if (version <= 0x400) { - CheckIsPlayerActive(); - } + if (version <= 0x400) CheckIsPlayerActive(); // the void tiles on the southern border used to belong to a wrong class. - if (version <= 0x402) - UpdateVoidTiles(); + if (version <= 0x402) UpdateVoidTiles(); // If Load Scenario / New (Scenario) Game is used, // a player does not exist yet. So create one here. @@ -1237,9 +1213,7 @@ bool AfterLoadGame(uint version) MarkWholeScreenDirty(); //In 5.1, Oilrigs have been moved (again) - if (version <= 0x500) { - UpdateOilRig(); - } + if (version <= 0x500) UpdateOilRig(); if (version <= 0x600) { BEGIN_TILE_LOOP(tile, MapSizeX(), MapSizeY(), 0) { @@ -1265,9 +1239,7 @@ bool AfterLoadGame(uint version) if (version < 0x900) { Town *t; - FOR_ALL_TOWNS(t) { - UpdateTownMaxPass(t); - } + FOR_ALL_TOWNS(t) UpdateTownMaxPass(t); } if (version < 0xF00) { @@ -1320,9 +1292,7 @@ bool AfterLoadGame(uint version) } } - FOR_ALL_PLAYERS(p) { - p->avail_railtypes = GetPlayerRailtypes(p->index); - } + FOR_ALL_PLAYERS(p) p->avail_railtypes = GetPlayerRailtypes(p->index); return true; } diff --git a/order_cmd.c b/order_cmd.c index 2820e88bd..38515d80b 100644 --- a/order_cmd.c +++ b/order_cmd.c @@ -29,8 +29,7 @@ static void OrderPoolNewBlock(uint start_item) { Order *order; - FOR_ALL_ORDERS_FROM(order, start_item) - order->index = start_item++; + FOR_ALL_ORDERS_FROM(order, start_item) order->index = start_item++; } /* Initialize the order-pool */ @@ -117,7 +116,7 @@ static Order *AllocateOrder(void) if (order->type == OT_NOTHING) { uint index = order->index; - memset(order, 0, sizeof(Order)); + memset(order, 0, sizeof(*order)); order->index = index; order->next = NULL; @@ -126,8 +125,7 @@ static Order *AllocateOrder(void) } /* Check if we can add a block to the pool */ - if (AddBlockToPool(&_order_pool)) - return AllocateOrder(); + if (AddBlockToPool(&_order_pool)) return AllocateOrder(); return NULL; } @@ -207,19 +205,19 @@ int32 CmdInsertOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2) * [full-load | unload] [+ transfer] [+ non-stop] * non-stop orders (if any) are only valid for trains */ switch (new_order.flags) { - case 0: /* Fallthrough */ + case 0: case OF_FULL_LOAD: - case OF_FULL_LOAD | OF_TRANSFER: /* Fallthrough */ + case OF_FULL_LOAD | OF_TRANSFER: case OF_UNLOAD: - case OF_UNLOAD | OF_TRANSFER: /* Fallthrough */ + case OF_UNLOAD | OF_TRANSFER: case OF_TRANSFER: break; case OF_NON_STOP: case OF_NON_STOP | OF_FULL_LOAD: - case OF_NON_STOP | OF_FULL_LOAD | OF_TRANSFER: /* Fallthrough */ + case OF_NON_STOP | OF_FULL_LOAD | OF_TRANSFER: case OF_NON_STOP | OF_UNLOAD: - case OF_NON_STOP | OF_UNLOAD | OF_TRANSFER: /* Fallthrough */ + case OF_NON_STOP | OF_UNLOAD | OF_TRANSFER: case OF_NON_STOP | OF_TRANSFER: if (v->type != VEH_Train) return CMD_ERROR; break; @@ -407,9 +405,7 @@ int32 CmdInsertOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2) static int32 DecloneOrder(Vehicle *dst, uint32 flags) { if (flags & DC_EXEC) { - /* Delete orders from vehicle */ DeleteVehicleOrders(dst); - InvalidateVehicleOrder(dst); RebuildVehicleLists(); } @@ -568,8 +564,7 @@ int32 CmdModifyOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2) switch (p2) { case OFB_FULL_LOAD: TOGGLEBIT(order->flags, OFB_FULL_LOAD); - if (order->type != OT_GOTO_DEPOT) - CLRBIT(order->flags, OFB_UNLOAD); + if (order->type != OT_GOTO_DEPOT) CLRBIT(order->flags, OFB_UNLOAD); break; case OFB_UNLOAD: TOGGLEBIT(order->flags, OFB_UNLOAD); @@ -750,7 +745,7 @@ void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *bak) /* Safe custom string, if any */ if ((v->string_id & 0xF800) != 0x7800) { - bak->name[0] = 0; + bak->name[0] = '\0'; } else { GetName(v->string_id & 0x7FF, bak->name); } @@ -899,8 +894,7 @@ bool CheckOrders(uint data_a, uint data_b) n_st++; st = GetStation(order->station); required_tile = GetStationTileForVehicle(v, st); - if (!required_tile) - problem_type = 3; + if (required_tile == 0) problem_type = 3; } } @@ -912,8 +906,7 @@ bool CheckOrders(uint data_a, uint data_b) problem_type = 2; /* Do we only have 1 station in our order list? */ - if ((n_st < 2) && (problem_type == -1)) - problem_type = 0; + if (n_st < 2 && problem_type == -1) problem_type = 0; /* We don't have a problem */ if (problem_type < 0) { @@ -1104,9 +1097,7 @@ bool CheckForValidOrders(const Vehicle* v) { const Order *order; - FOR_VEHICLE_ORDERS(v, order) - if (order->type != OT_DUMMY) - return true; + FOR_VEHICLE_ORDERS(v, order) if (order->type != OT_DUMMY) return true; return false; } diff --git a/order_gui.c b/order_gui.c index e7b1ccba5..30d1e92fc 100644 --- a/order_gui.c +++ b/order_gui.c @@ -472,13 +472,15 @@ static void OrdersWndProc(Window *w, WindowEvent *e) } case WE_RCLICK: { - Vehicle *v = GetVehicle(w->window_number); - int sel = OrderGetSel(w); - if (e->click.widget != 8) break; - if (sel == v->num_orders || GetVehicleOrder(v, sel)->type != OT_GOTO_DEPOT) + Vehicle* v = GetVehicle(w->window_number); + int s = OrderGetSel(w); + + if (e->click.widget != 8) break; + if (s == v->num_orders || GetVehicleOrder(v, s)->type != OT_GOTO_DEPOT) { GuiShowTooltips(STR_8857_MAKE_THE_HIGHLIGHTED_ORDER); - else + } else { GuiShowTooltips(STR_SERVICE_HINT); + } } break; case WE_4: { diff --git a/player_gui.c b/player_gui.c index 300abd686..eba18b143 100644 --- a/player_gui.c +++ b/player_gui.c @@ -685,10 +685,10 @@ static const WindowDesc _other_player_company_desc = { void ShowPlayerCompany(PlayerID player) { - Window *w; - w = AllocateWindowDescFront(player == _local_player ? &_my_player_company_desc : &_other_player_company_desc, player); - if (w) - w->caption_color = w->window_number; + Window* w; + + w = AllocateWindowDescFront(player == _local_player ? &_my_player_company_desc : &_other_player_company_desc, player); + if (w != NULL) w->caption_color = w->window_number; } @@ -881,7 +881,7 @@ void ShowHighscoreTable(int difficulty, int8 ranking) if (!_networking) DoCommandP(0, 1, 0, NULL, CMD_PAUSE); /* Close all always on-top windows to get a clean screen */ - if (_game_mode != GM_MENU) HideVitalWindows(); + if (_game_mode != GM_MENU) HideVitalWindows(); DeleteWindowByClass(WC_HIGHSCORE); w = AllocateWindowDesc(&_highscore_desc); @@ -135,17 +135,17 @@ void DrawPlayerFace(uint32 face, int color, int x, int y) /* draw the hair */ { uint val = GB(face, 16, 4); - if (!(flag&2)) { - if (!(flag&1)) { - DrawSprite(0x382 + (val*9>>4), x, y); + if (flag & 2) { + if (flag & 1) { + DrawSprite(0x3D9 + (val * 5 >> 4), x, y); } else { - DrawSprite(0x38B + (val*5>>4), x, y); + DrawSprite(0x3D4 + (val * 5 >> 4), x, y); } } else { - if (!(flag&1)) { - DrawSprite(0x3D4 + (val*5>>4), x, y); + if (flag & 1) { + DrawSprite(0x38B + (val * 5 >> 4), x, y); } else { - DrawSprite(0x3D9 + (val*5>>4), x, y); + DrawSprite(0x382 + (val * 9 >> 4), x, y); } } } @@ -163,9 +163,7 @@ void DrawPlayerFace(uint32 face, int color, int x, int y) DrawSprite(0x37B + (GB(val, 2, 2) * 4 >> 2), x, y); val >>= 4; - if (val < 3) { - DrawSprite((flag&2 ? 0x3D1 : 0x37F) + val, x, y); - } + if (val < 3) DrawSprite((flag & 2 ? 0x3D1 : 0x37F) + val, x, y); } } @@ -173,14 +171,10 @@ void DrawPlayerFace(uint32 face, int color, int x, int y) { uint val = GB(face, 28, 3); - if (!(flag&2)) { - if (val<=1) { - DrawSprite(0x347 + val, x, y); - } + if (flag & 2) { + if (val <= 1) DrawSprite(0x3AE + val, x, y); } else { - if (val<=1) { - DrawSprite(0x3AE + val, x, y); - } + if (val <= 1) DrawSprite(0x347 + val, x, y); } } } diff --git a/rail_cmd.c b/rail_cmd.c index a5c48743d..9b39295b8 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -224,7 +224,7 @@ uint GetRailFoundation(uint tileh, uint bits) return 0; } -// + static uint32 CheckRailSlope(uint tileh, TrackBits rail_bits, TrackBits existing, TileIndex tile) { // never allow building on top of steep tiles @@ -689,8 +689,7 @@ int32 CmdBuildTrainDepot(int x, int y, uint32 flags, uint32 p1, uint32 p2) cost = ret; d = AllocateDepot(); - if (d == NULL) - return CMD_ERROR; + if (d == NULL) return CMD_ERROR; if (flags & DC_EXEC) { if (IsLocalPlayer()) _last_built_train_depot_tile = tile; @@ -820,10 +819,11 @@ int32 CmdBuildSingleSignal(int x, int y, uint32 flags, uint32 p1, uint32 p2) _m[tile].m3 &= ~SignalOnTrack(track); _m[tile].m3 |= p2 & SignalOnTrack(track); // convert between signal<->semaphores when dragging - if (semaphore) + if (semaphore) { SETBIT(_m[tile].m4, 3); - else + } else { CLRBIT(_m[tile].m4, 3); + } } MarkTileDirtyByTile(tile); @@ -859,8 +859,7 @@ static int32 CmdSignalTrackHelper(int x, int y, uint32 flags, uint32 p1, uint32 if (p1 > MapSize()) return CMD_ERROR; if (signal_density == 0 || signal_density > 20) return CMD_ERROR; - if (!IsTileType(tile, MP_RAILWAY)) - return CMD_ERROR; + if (!IsTileType(tile, MP_RAILWAY)) return CMD_ERROR; SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION); @@ -1290,8 +1289,7 @@ static void DrawTrackFence_NE_SW(const TileInfo *ti) static void DrawTrackFence_NS_1(const TileInfo *ti) { int z = ti->z; - if (ti->tileh & 1) - z += 8; + if (ti->tileh & 1) z += 8; AddSortableSpriteToDraw(0x517 | _drawtile_track_palette, ti->x + 8, ti->y + 8, 1, 1, 4, z); } @@ -1299,8 +1297,7 @@ static void DrawTrackFence_NS_1(const TileInfo *ti) static void DrawTrackFence_NS_2(const TileInfo *ti) { int z = ti->z; - if (ti->tileh & 4) - z += 8; + if (ti->tileh & 4) z += 8; AddSortableSpriteToDraw(0x517 | _drawtile_track_palette, ti->x + 8, ti->y + 8, 1, 1, 4, z); } @@ -1308,8 +1305,7 @@ static void DrawTrackFence_NS_2(const TileInfo *ti) static void DrawTrackFence_WE_1(const TileInfo *ti) { int z = ti->z; - if (ti->tileh & 8) - z += 8; + if (ti->tileh & 8) z += 8; AddSortableSpriteToDraw(0x518 | _drawtile_track_palette, ti->x + 8, ti->y + 8, 1, 1, 4, z); } @@ -1317,8 +1313,7 @@ static void DrawTrackFence_WE_1(const TileInfo *ti) static void DrawTrackFence_WE_2(const TileInfo *ti) { int z = ti->z; - if (ti->tileh & 2) - z += 8; + if (ti->tileh & 2) z += 8; AddSortableSpriteToDraw(0x518 | _drawtile_track_palette, ti->x + 8, ti->y + 8, 1, 1, 4, z); } @@ -1795,8 +1790,7 @@ static void SetSignalsAfterProc(TrackPathFinder *tpf) /* Go through all the PF tiles */ for (i = 0; i < lengthof(tpf->hash_head); i++) { /* Empty hash item */ - if (tpf->hash_head[i] == 0) - continue; + if (tpf->hash_head[i] == 0) continue; /* If 0x8000 is not set, there is only 1 item */ if (!(tpf->hash_head[i] & 0x8000)) { @@ -1917,8 +1911,7 @@ bool UpdateSignalsOnSegment(TileIndex tile, byte direction) if (result < 0) result = ssd.stop; // if any exit signals were changed, we need to keep going to modify the stuff behind those. - if(!ssd.cur_stack) - break; + if (ssd.cur_stack == 0) break; // one or more exit signals were changed, so we need to update another segment too. tile = ssd.next_tile[--ssd.cur_stack]; @@ -2020,8 +2013,7 @@ static void TileLoop_Track(TileIndex tile) } // Don't continue tile loop for depots - if (_m[tile].m5 & RAIL_TYPE_SPECIAL) - return; + if (_m[tile].m5 & RAIL_TYPE_SPECIAL) return; a2 = RAIL_GROUND_GREEN; @@ -2085,8 +2077,7 @@ static uint32 GetTileTrackStatus_Track(TileIndex tile, TransportType mode) uint16 b; uint32 ret; - if (mode != TRANSPORT_RAIL) - return 0; + if (mode != TRANSPORT_RAIL) return 0; m5 = _m[tile].m5; @@ -2111,10 +2102,10 @@ static uint32 GetTileTrackStatus_Track(TileIndex tile, TransportType mode) if ((a & 0xC0) == 0) b |= 0xC0; if ((a & 0x30) == 0) b |= 0x30; - if ( (b & 0x80) == 0) ret |= 0x10070000; - if ( (b & 0x40) == 0) ret |= 0x7100000; - if ( (b & 0x20) == 0) ret |= 0x20080000; - if ( (b & 0x10) == 0) ret |= 0x8200000; + if ((b & 0x80) == 0) ret |= 0x10070000; + if ((b & 0x40) == 0) ret |= 0x07100000; + if ((b & 0x20) == 0) ret |= 0x20080000; + if ((b & 0x10) == 0) ret |= 0x08200000; } } else if (m5 & 0x40) { static const byte _train_spec_tracks[6] = {1,2,1,2,1,2}; @@ -2193,8 +2184,7 @@ static uint32 VehicleEnter_Track(Vehicle *v, TileIndex tile, int x, int y) int length; // this routine applies only to trains in depot tiles - if (v->type != VEH_Train || !IsTileDepotType(tile, TRANSPORT_RAIL)) - return 0; + if (v->type != VEH_Train || !IsTileDepotType(tile, TRANSPORT_RAIL)) return 0; /* depot direction */ dir = GetDepotDirection(tile, TRANSPORT_RAIL); diff --git a/rail_gui.c b/rail_gui.c index 2d31d4fbb..415498958 100644 --- a/rail_gui.c +++ b/rail_gui.c @@ -24,7 +24,7 @@ static RailType _cur_railtype; static bool _remove_button_clicked; static byte _build_depot_direction; -static byte _waypoint_count=1; +static byte _waypoint_count = 1; static byte _cur_waypoint_type; static struct { @@ -40,8 +40,6 @@ static void ShowBuildTrainDepotPicker(void); static void ShowBuildWaypointPicker(void); static void ShowStationBuilder(void); -typedef void OnButtonClick(Window *w); - void CcPlaySound1E(bool success, TileIndex tile, uint32 p1, uint32 p2) { if (success) SndPlayTileFx(SND_20_SPLAT_2, tile); @@ -53,7 +51,7 @@ static void GenericPlaceRail(TileIndex tile, int cmd) _remove_button_clicked ? CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) | CMD_AUTO | CMD_NO_WATER : CMD_BUILD_SINGLE_RAIL | CMD_MSG(STR_1011_CAN_T_BUILD_RAILROAD_TRACK) | CMD_AUTO | CMD_NO_WATER - ); + ); } static void PlaceRail_N(TileIndex tile) @@ -159,7 +157,7 @@ static void PlaceRail_Station(TileIndex tile) static void GenericPlaceSignals(TileIndex tile) { uint trackstat; - int i; + uint i; trackstat = (byte)GetTileTrackStatus(tile, TRANSPORT_RAIL); @@ -171,7 +169,9 @@ static void GenericPlaceSignals(TileIndex tile) // Lookup the bit index i = 0; - if (trackstat != 0) { while (!(trackstat & 1)) { i++; trackstat >>= 1; }} + if (trackstat != 0) { + for (; !(trackstat & 1); trackstat >>= 1) i++; + } if (!_remove_button_clicked) { DoCommandP(tile, i + (_ctrl_pressed ? 8 : 0), 0, CcPlaySound1E, @@ -258,9 +258,10 @@ static void BuildRailClick_Depot(Window *w) static void BuildRailClick_Waypoint(Window *w) { _waypoint_count = GetNumCustomStations(STAT_CLASS_WAYP); - if (HandlePlacePushButton(w, 11, SPR_CURSOR_WAYPOINT, 1, PlaceRail_Waypoint) - && _waypoint_count > 1) + if (HandlePlacePushButton(w, 11, SPR_CURSOR_WAYPOINT, 1, PlaceRail_Waypoint) && + _waypoint_count > 1) { ShowBuildWaypointPicker(); + } } static void BuildRailClick_Station(Window *w) @@ -295,10 +296,11 @@ static void BuildRailClick_Remove(Window *w) // handle station builder if (HASBIT(w->click_state, 16)) { - if(_remove_button_clicked) + if (_remove_button_clicked) { SetTileSelectSize(1, 1); - else + } else { BringWindowToFrontById(WC_BUILD_STATION, 0); + } } } @@ -346,13 +348,20 @@ static void HandleAutoSignalPlacement(void) // _patches.drag_signals_density is given as a parameter such that each user in a network // game can specify his/her own signal density - DoCommandP(TileVirtXY(thd->selstart.x, thd->selstart.y), TileVirtXY(thd->selend.x, thd->selend.y), - (_ctrl_pressed ? 1 << 3 : 0) | (trackstat << 4) | (_patches.drag_signals_density << 24), - CcPlaySound1E, - (_remove_button_clicked ? CMD_REMOVE_SIGNAL_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM) : - CMD_BUILD_SIGNAL_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE) ) ); + DoCommandP( + TileVirtXY(thd->selstart.x, thd->selstart.y), + TileVirtXY(thd->selend.x, thd->selend.y), + (_ctrl_pressed ? 1 << 3 : 0) | (trackstat << 4) | (_patches.drag_signals_density << 24), + CcPlaySound1E, + _remove_button_clicked ? + CMD_REMOVE_SIGNAL_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM) : + CMD_BUILD_SIGNAL_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE) + ); } + +typedef void OnButtonClick(Window *w); + static OnButtonClick * const _build_railroad_button_proc[] = { BuildRailClick_N, BuildRailClick_NE, @@ -390,11 +399,9 @@ static const uint16 _rail_keycodes[] = { }; - - static void BuildRailToolbWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: w->disabled_state &= ~(1 << 16); if (!(w->click_state & ((1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<11)|(1<<12)|(1<<13)))) { @@ -412,9 +419,9 @@ static void BuildRailToolbWndProc(Window *w, WindowEvent *e) break; case WE_KEYPRESS: { - int i; + uint i; - for(i=0; i!=lengthof(_rail_keycodes); i++) { + for (i = 0; i != lengthof(_rail_keycodes); i++) { if (e->keypress.keycode == _rail_keycodes[i]) { e->keypress.cont = false; _remove_button_clicked = false; @@ -467,16 +474,16 @@ static void BuildRailToolbWndProc(Window *w, WindowEvent *e) SetWindowDirty(w); w = FindWindowById(WC_BUILD_STATION, 0); - if (w != NULL) WP(w,def_d).close=true; + if (w != NULL) WP(w,def_d).close = true; w = FindWindowById(WC_BUILD_DEPOT, 0); - if (w != NULL) WP(w,def_d).close=true; + if (w != NULL) WP(w,def_d).close = true; break; case WE_PLACE_PRESIZE: { TileIndex tile = e->place.tile; DoCommandByTile(tile, 0, 0, DC_AUTO, CMD_BUILD_TUNNEL); - VpSetPresizeRange(tile, _build_tunnel_endtile==0?tile:_build_tunnel_endtile); + VpSetPresizeRange(tile, _build_tunnel_endtile == 0 ? tile : _build_tunnel_endtile); } break; case WE_DESTROY: @@ -541,7 +548,7 @@ typedef enum { * @param railtype the railtype to display * @param w the window to modify */ -static void SetupRailToolbar(RailType railtype, Window *w) +static void SetupRailToolbar(RailType railtype, Window* w) { const RailtypeInfo *rti = GetRailTypeInfo(railtype); @@ -703,17 +710,16 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) } } break; - case WE_MOUSELOOP: { + case WE_MOUSELOOP: if (WP(w,def_d).close) { DeleteWindow(w); return; } CheckRedrawStationCoverage(w); - } break; + break; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } @@ -772,28 +778,30 @@ static void BuildTrainDepotWndProc(Window *w, WindowEvent *e) r = _cur_railtype; DrawTrainDepotSprite(70, 17, 0, r); DrawTrainDepotSprite(70, 69, 1, r); - DrawTrainDepotSprite(2, 69, 2, r); - DrawTrainDepotSprite(2, 17, 3, r); + DrawTrainDepotSprite( 2, 69, 2, r); + DrawTrainDepotSprite( 2, 17, 3, r); break; } - case WE_CLICK: { - switch(e->click.widget) { - case 3: case 4: case 5: case 6: - _build_depot_direction = e->click.widget - 3; - SndPlayFx(SND_15_BEEP); - SetWindowDirty(w); - break; + + case WE_CLICK: + switch (e->click.widget) { + case 3: + case 4: + case 5: + case 6: + _build_depot_direction = e->click.widget - 3; + SndPlayFx(SND_15_BEEP); + SetWindowDirty(w); + break; } - } break; + break; case WE_MOUSELOOP: - if (WP(w,def_d).close) - DeleteWindow(w); + if (WP(w,def_d).close) DeleteWindow(w); return; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } @@ -827,15 +835,16 @@ static void BuildWaypointWndProc(Window *w, WindowEvent *e) { switch (e->event) { case WE_PAINT: { - int i; + uint i; + w->click_state = (1 << 3) << (_cur_waypoint_type - w->hscroll.pos); DrawWindowWidgets(w); for (i = 0; i < 5; i++) { - if (w->hscroll.pos + i < _waypoint_count) + if (w->hscroll.pos + i < _waypoint_count) { DrawWaypointSprite(2 + i * 68, 25, w->hscroll.pos + i, _cur_railtype); + } } - break; } case WE_CLICK: { @@ -850,13 +859,11 @@ static void BuildWaypointWndProc(Window *w, WindowEvent *e) } case WE_MOUSELOOP: - if (WP(w,def_d).close) - DeleteWindow(w); + if (WP(w,def_d).close) DeleteWindow(w); break; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } diff --git a/road_cmd.c b/road_cmd.c index 663864705..34382402c 100644 --- a/road_cmd.c +++ b/road_cmd.c @@ -377,7 +377,7 @@ int32 CmdBuildRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (ti.type == MP_STREET) { if (!(ti.map5 & 0xF0)) { - if ( (pieces & (byte)(ti.map5)) == (pieces)) + if ((pieces & (byte)ti.map5) == pieces) return_cmd_error(STR_1007_ALREADY_BUILT); existing = ti.map5; } else { @@ -680,12 +680,9 @@ static int32 RemoveRoadDepot(TileIndex tile, uint32 flags) if (!CheckTileOwnership(tile) && _current_player != OWNER_WATER) return CMD_ERROR; - if (!EnsureNoVehicle(tile)) - return CMD_ERROR; + if (!EnsureNoVehicle(tile)) return CMD_ERROR; - if (flags & DC_EXEC) { - DoDeleteDepot(tile); - } + if (flags & DC_EXEC) DoDeleteDepot(tile); return _price.remove_road_depot; } @@ -790,21 +787,16 @@ void DrawRoadBits(TileInfo *ti, byte road, byte ground_type, bool snow, bool fla foundation = GetRoadFoundation(ti->tileh, road); } - if (foundation != 0) - DrawFoundation(ti, foundation); + if (foundation != 0) DrawFoundation(ti, foundation); // DrawFoundation() modifies ti. // Default sloped sprites.. - if (ti->tileh != 0) { - image = _road_sloped_sprites[ti->tileh - 1] + 0x53F; - } + if (ti->tileh != 0) image = _road_sloped_sprites[ti->tileh - 1] + 0x53F; } - if (image == 0) - image = _road_tile_sprites_1[road]; + if (image == 0) image = _road_tile_sprites_1[road]; - if (ground_type == 0) - image |= PALETTE_TO_BARE_LAND; + if (ground_type == 0) image |= PALETTE_TO_BARE_LAND; if (snow) { image += 19; @@ -816,8 +808,7 @@ void DrawRoadBits(TileInfo *ti, byte road, byte ground_type, bool snow, bool fla DrawGroundSprite(image); // Return if full detail is disabled, or we are zoomed fully out. - if (!(_display_opt & DO_FULL_DETAIL) || _cur_dpi->zoom == 2) - return; + if (!(_display_opt & DO_FULL_DETAIL) || _cur_dpi->zoom == 2) return; if (ground_type >= 6) { // Road works @@ -831,8 +822,7 @@ void DrawRoadBits(TileInfo *ti, byte road, byte ground_type, bool snow, bool fla int x = ti->x | drts->subcoord_x; int y = ti->y | drts->subcoord_y; byte z = ti->z; - if (ti->tileh != 0) - z = GetSlopeZ(x, y); + if (ti->tileh != 0) z = GetSlopeZ(x, y); AddSortableSpriteToDraw(image, x, y, 2, 2, 0x10, z); drts++; } @@ -915,8 +905,8 @@ void DrawRoadDepotSprite(int x, int y, int image) dtss = _road_display_datas[image]; - x+=33; - y+=17; + x += 33; + y += 17; DrawSprite(dtss++->image, x, y); @@ -924,8 +914,7 @@ void DrawRoadDepotSprite(int x, int y, int image) Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0); image = dtss->image; - if (image & PALETTE_MODIFIER_COLOR) - image |= ormod; + if (image & PALETTE_MODIFIER_COLOR) image |= ormod; DrawSprite(image, x + pt.x, y + pt.y); } @@ -986,9 +975,7 @@ static void GetAcceptedCargo_Road(TileIndex tile, AcceptedCargo ac) static void AnimateTile_Road(TileIndex tile) { - if (IsLevelCrossing(tile)) { - MarkTileDirtyByTile(tile); - } + if (IsLevelCrossing(tile)) MarkTileDirtyByTile(tile); } static const byte _town_road_types[5][2] = { diff --git a/road_gui.c b/road_gui.c index dbb0ea1af..448617ecd 100644 --- a/road_gui.c +++ b/road_gui.c @@ -171,7 +171,7 @@ static void BuildRoadClick_Landscaping(Window *w) ShowTerraformToolbar(); } -static OnButtonClick * const _build_road_button_proc[] = { +static OnButtonClick* const _build_road_button_proc[] = { BuildRoadClick_NE, BuildRoadClick_NW, BuildRoadClick_Demolish, @@ -184,8 +184,9 @@ static OnButtonClick * const _build_road_button_proc[] = { BuildRoadClick_Landscaping, }; -static void BuildRoadToolbWndProc(Window *w, WindowEvent *e) { - switch(e->event) { +static void BuildRoadToolbWndProc(Window* w, WindowEvent* e) +{ + switch (e->event) { case WE_PAINT: w->disabled_state &= ~(1 << 11); if (!(w->click_state & ((1<<3)|(1<<4)))) { @@ -196,8 +197,7 @@ static void BuildRoadToolbWndProc(Window *w, WindowEvent *e) { break; case WE_CLICK: { - if (e->click.widget >= 3) - _build_road_button_proc[e->click.widget - 3](w); + if (e->click.widget >= 3) _build_road_button_proc[e->click.widget - 3](w); } break; case WE_KEYPRESS: @@ -228,11 +228,11 @@ static void BuildRoadToolbWndProc(Window *w, WindowEvent *e) { SetWindowDirty(w); w = FindWindowById(WC_BUS_STATION, 0); - if (w != NULL) WP(w,def_d).close=true; + if (w != NULL) WP(w,def_d).close = true; w = FindWindowById(WC_TRUCK_STATION, 0); - if (w != NULL) WP(w,def_d).close=true; + if (w != NULL) WP(w,def_d).close = true; w = FindWindowById(WC_BUILD_DEPOT, 0); - if (w != NULL) WP(w,def_d).close=true; + if (w != NULL) WP(w,def_d).close = true; break; case WE_PLACE_DRAG: { @@ -351,16 +351,17 @@ void ShowBuildRoadScenToolbar(void) AllocateWindowDescFront(&_build_road_scen_desc, 0); } -static void BuildRoadDepotWndProc(Window *w, WindowEvent *e) { - switch(e->event) { +static void BuildRoadDepotWndProc(Window* w, WindowEvent* e) +{ + switch (e->event) { case WE_PAINT: w->click_state = (1<<3) << _road_depot_orientation; DrawWindowWidgets(w); DrawRoadDepotSprite(70, 17, 0); DrawRoadDepotSprite(70, 69, 1); - DrawRoadDepotSprite(2, 69, 2); - DrawRoadDepotSprite(2, 17, 3); + DrawRoadDepotSprite( 2, 69, 2); + DrawRoadDepotSprite( 2, 17, 3); break; case WE_CLICK: { @@ -374,13 +375,11 @@ static void BuildRoadDepotWndProc(Window *w, WindowEvent *e) { } break; case WE_MOUSELOOP: - if (WP(w,def_d).close) - DeleteWindow(w); + if (WP(w,def_d).close) DeleteWindow(w); break; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } @@ -466,8 +465,7 @@ static void RoadStationPickerWndProc(Window *w, WindowEvent *e) } break; case WE_DESTROY: - if (!WP(w,def_d).close) - ResetObjectToPlace(); + if (!WP(w,def_d).close) ResetObjectToPlace(); break; } } diff --git a/roadveh_gui.c b/roadveh_gui.c index f2fda8374..460dbc1f9 100644 --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -65,12 +65,11 @@ static void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection { int image = GetRoadVehImage(v, 6); uint32 ormod = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(v->owner)); - if (v->vehstatus & VS_CRASHED) - ormod = PALETTE_CRASH; - DrawSprite(image | ormod, x+14, y+6); + if (v->vehstatus & VS_CRASHED) ormod = PALETTE_CRASH; + DrawSprite(image | ormod, x + 14, y + 6); if (v->index == selection) { - DrawFrameRect(x-1, y-1, x+28, y+12, 15, FR_BORDERONLY); + DrawFrameRect(x - 1, y - 1, x + 28, y + 12, 15, FR_BORDERONLY); } } @@ -215,6 +214,7 @@ static void ShowRoadVehDetailsWindow(const Vehicle* v) { Window *w; VehicleID veh = v->index; + DeleteWindowById(WC_VEHICLE_ORDERS, veh); DeleteWindowById(WC_VEHICLE_DETAILS, veh); _alloc_wnd_parent_num = veh; @@ -225,11 +225,7 @@ static void ShowRoadVehDetailsWindow(const Vehicle* v) void CcCloneRoadVeh(bool success, uint tile, uint32 p1, uint32 p2) { - if (success) { - const Vehicle* v = GetVehicle(_new_roadveh_id); - - ShowRoadVehViewWindow(v); - } + if (success) ShowRoadVehViewWindow(GetVehicle(_new_roadveh_id)); } static void RoadVehViewWndProc(Window *w, WindowEvent *e) @@ -445,7 +441,7 @@ void CcBuildRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2) static void NewRoadVehWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: DrawNewRoadVehWindow(w); break; @@ -1073,7 +1069,7 @@ void ShowPlayerRoadVehicles(PlayerID player, StationID station) } else { w = AllocateWindowDescFront(&_other_player_roadveh_desc, (station << 16) | player); } - if (w) { + if (w != NULL) { w->caption_color = player; w->vscroll.cap = 7; // maximum number of vehicles shown w->widget[7].unkA = (w->vscroll.cap << 8) + 1; diff --git a/settings_gui.c b/settings_gui.c index 4b404992b..b53f5e3a5 100644 --- a/settings_gui.c +++ b/settings_gui.c @@ -63,16 +63,20 @@ static StringID *BuildDynamicDropdown(StringID base, int num) static int GetCurRes(void) { int i; - for(i = 0; i != _num_resolutions; i++) + + for (i = 0; i != _num_resolutions; i++) { if (_resolutions[i][0] == _screen.width && - _resolutions[i][1] == _screen.height) + _resolutions[i][1] == _screen.height) { break; + } + } return i; } static inline bool RoadVehiclesAreBuilt(void) { - const Vehicle *v; + const Vehicle* v; + FOR_ALL_VEHICLES(v) { if (v->type == VEH_Road) return true; } @@ -551,30 +555,23 @@ void ShowGameDifficulty(void) // virtual PositionMainToolbar function, calls the right one. static int32 v_PositionMainToolbar(int32 p1) { - if (_game_mode != GM_MENU) - PositionMainToolbar(NULL); - + if (_game_mode != GM_MENU) PositionMainToolbar(NULL); return 0; } static int32 AiNew_PatchActive_Warning(int32 p1) { - if (p1 == 1) - ShowErrorMessage(-1, TEMP_AI_ACTIVATED, 0, 0); - - return 0; + if (p1 == 1) ShowErrorMessage(-1, TEMP_AI_ACTIVATED, 0, 0); + return 0; } static int32 PopulationInLabelActive(int32 p1) { - Town *t; + Town* t; FOR_ALL_TOWNS(t) { - if (t->xy) { - UpdateTownVirtCoord(t); - } + if (t->xy != 0) UpdateTownVirtCoord(t); } - return 0; } @@ -639,14 +636,14 @@ static int32 EngineRenewMoneyUpdate(int32 p1) typedef int32 PatchButtonClick(int32); typedef struct PatchEntry { - byte type; // type of selector - byte flags; // selector flags - StringID str; // string with descriptive text - char console_name[40]; // the name this patch has in console - void *variable; // pointer to the variable - int32 min, max; // range for spinbox setting - uint32 step; // step for spinbox - PatchButtonClick *click_proc; // callback procedure + byte type; // type of selector + byte flags; // selector flags + StringID str; // string with descriptive text + char console_name[40]; // the name this patch has in console + void* variable; // pointer to the variable + int32 min, max; // range for spinbox setting + uint32 step; // step for spinbox + PatchButtonClick* click_proc; // callback procedure } PatchEntry; enum { @@ -821,7 +818,6 @@ static void WritePE(const PatchEntry* p, int32 v) static void PatchesSelectionWndProc(Window *w, WindowEvent *e) { - uint i; switch (e->event) { case WE_PAINT: { int x,y; @@ -829,6 +825,7 @@ static void PatchesSelectionWndProc(Window *w, WindowEvent *e) const PatchPage *page; uint clk; int32 val; + uint i; w->click_state = 1 << (WP(w,def_d).data_1 + 4); @@ -1116,8 +1113,9 @@ void IConsoleGetPatchSetting(const char *name) if (pe->type == PE_BOOL) { snprintf(value, sizeof(value), (ReadPE(pe) == 1) ? "on" : "off"); - } else + } else { snprintf(value, sizeof(value), "%d", ReadPE(pe)); + } IConsolePrintF(_icolour_warn, "Current value for '%s' is: '%s'", name, value); } @@ -1175,9 +1173,9 @@ static void NewgrfWndProc(Window *w, WindowEvent *e) // draw list of all grf files while (c != NULL) { if (i >= w->vscroll.pos) { // draw files according to scrollbar position - bool h = (_sel_grffile==c); + bool h = (_sel_grffile == c); // show highlighted item with a different background and highlighted text - if(h) GfxFillRect(1, y + 1, 267, y + 12, 156); + if (h) GfxFillRect(1, y + 1, 267, y + 12, 156); // XXX - will be grf name later DoDrawString(c->filename, 25, y + 2, h ? 0xC : 0x10); DrawSprite(SPRITE_PALETTE(SPR_SQUARE | PALETTE_TO_RED), 5, y + 2); @@ -1448,23 +1446,27 @@ static void CustCurrencyWndProc(Window *w, WindowEvent *e) val = atoi(b); val = clamp(val, 1, 5000); _custom_currency.rate = val; - break; + break; + case 1: /* Thousands seperator */ _custom_currency.separator = (b[0] == '\0') ? ' ' : b[0]; ttd_strlcpy(_str_separator, b, lengthof(_str_separator)); - break; + break; + case 2: /* Currency prefix */ ttd_strlcpy(_custom_currency.prefix, b, lengthof(_custom_currency.prefix)); - break; + break; + case 3: /* Currency suffix */ ttd_strlcpy(_custom_currency.suffix, b, lengthof(_custom_currency.suffix)); - break; + break; + case 4: /* Year to switch to euro */ val = atoi(b); val = clamp(val, 1999, MAX_YEAR_END_REAL); if (val == 1999) val = 0; _custom_currency.to_euro = val; - break; + break; } MarkWholeScreenDirty(); @@ -1500,11 +1502,9 @@ static const WindowDesc _cust_currency_desc = { void ShowCustCurrency(void) { - Window *w; - _str_separator[0] = _custom_currency.separator; _str_separator[1] = '\0'; DeleteWindowById(WC_CUSTOM_CURRENCY, 0); - w = AllocateWindowDesc(&_cust_currency_desc); + AllocateWindowDesc(&_cust_currency_desc); } diff --git a/ship_cmd.c b/ship_cmd.c index bd2bb2b6b..b153c5ccc 100644 --- a/ship_cmd.c +++ b/ship_cmd.c @@ -35,7 +35,7 @@ void DrawShipEngine(int x, int y, EngineID engine, uint32 image_ormod) if (is_custom_sprite(spritenum)) { int sprite = GetCustomVehicleIcon(engine, 6); - if (sprite) { + if (sprite != 0) { DrawSprite(sprite | image_ormod, x, y); return; } @@ -51,7 +51,7 @@ int GetShipImage(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_ship_vehicle_info[v->engine_type - SHIP_ENGINES_INDEX].image_index; } return _ship_sprites[spritenum] + direction; @@ -70,10 +70,11 @@ static const Depot* FindClosestShipDepot(const Vehicle* v) NPFFoundTargetData ftd; byte trackdir = GetVehicleTrackdir(v); ftd = NPFRouteToDepotTrialError(v->tile, trackdir, TRANSPORT_WATER, v->owner, INVALID_RAILTYPE); - if (ftd.best_bird_dist == 0) + if (ftd.best_bird_dist == 0) { best_depot = GetDepotByTile(ftd.node.tile); /* Found target */ - else + } else { best_depot = NULL; /* Did not find target */ + } } else { FOR_ALL_DEPOTS(depot) { tile = depot->xy; @@ -93,21 +94,15 @@ static void CheckIfShipNeedsService(Vehicle *v) { const Depot* depot; - if (_patches.servint_ships == 0) - return; - - if (!VehicleNeedsService(v)) - return; - - if (v->vehstatus & VS_STOPPED) - return; + if (_patches.servint_ships == 0) return; + if (!VehicleNeedsService(v)) return; + if (v->vehstatus & VS_STOPPED) return; if (v->current_order.type == OT_GOTO_DEPOT && v->current_order.flags & OF_HALT_IN_DEPOT) return; - if (_patches.gotodepot && VehicleHasDepotOrders(v)) - return; + if (_patches.gotodepot && VehicleHasDepotOrders(v)) return; depot = FindClosestShipDepot(v); @@ -140,10 +135,7 @@ void OnNewDay_Ship(Vehicle *v) CheckOrders(v->index, OC_INIT); - if (v->vehstatus & VS_STOPPED) - return; - - + if (v->vehstatus & VS_STOPPED) return; cost = ShipVehInfo(v->engine_type)->running_cost * _price.ship_running / 364; v->profit_this_year -= cost >> 8; @@ -173,8 +165,7 @@ static void HandleBrokenShip(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; } } @@ -268,15 +259,11 @@ static void ProcessShipOrder(Vehicle *v) static void HandleShipLoading(Vehicle *v) { - if (v->current_order.type == OT_NOTHING) - return; + if (v->current_order.type == OT_NOTHING) return; if (v->current_order.type != OT_DUMMY) { - if (v->current_order.type != OT_LOADING) - return; - - if (--v->load_unload_time_rem) - return; + if (v->current_order.type != OT_LOADING) return; + if (--v->load_unload_time_rem) return; if (v->current_order.flags & OF_FULL_LOAD && CanFillVehicle(v)) { SET_EXPENSES_TYPE(EXPENSES_SHIP_INC); @@ -292,8 +279,7 @@ static void HandleShipLoading(Vehicle *v) Order b = v->current_order; v->current_order.type = OT_LEAVESTATION; v->current_order.flags = 0; - if (!(b.flags & OF_NON_STOP)) - return; + if (!(b.flags & OF_NON_STOP)) return; } } @@ -341,8 +327,7 @@ static void CheckShipLeaveDepot(Vehicle *v) int d; uint m; - if (v->u.ship.state != 0x80) - return; + if (v->u.ship.state != 0x80) return; tile = v->tile; d = (_m[tile].m5&2) ? 1 : 0; @@ -383,15 +368,10 @@ static bool ShipAccelerate(Vehicle *v) } // Decrease somewhat when turning - if (!(v->direction&1)) { - spd = spd * 3 >> 2; - } + if (!(v->direction & 1)) spd = spd * 3 / 4; - if (spd == 0) - return false; - - if ((byte)++spd == 0) - return true; + if (spd == 0) return false; + if ((byte)++spd == 0) return true; v->progress = (t = v->progress) - (byte)spd; @@ -447,7 +427,9 @@ static void ShipArrivesAt(const Vehicle* v, Station* st) /* Check if station was ever visited before */ if (!(st->had_vehicle_of_type & HVOT_SHIP)) { uint32 flags; + st->had_vehicle_of_type |= HVOT_SHIP; + SetDParam(0, st->index); flags = (v->owner == _local_player) ? NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_PLAYER, 0) : NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_OTHER, 0); AddNewsItem( @@ -564,14 +546,15 @@ static int ChooseShipTrack(Vehicle *v, TileIndex tile, int enterdir, uint tracks ftd = NPFRouteToStationOrTile(src_tile, trackdir, &fstd, TRANSPORT_WATER, v->owner, INVALID_RAILTYPE, PBS_MODE_NONE); - if (ftd.best_trackdir != 0xff) + if (ftd.best_trackdir != 0xff) { /* If ftd.best_bird_dist is 0, we found our target and ftd.best_trackdir contains the direction we need to take to get there, if ftd.best_bird_dist is not 0, we did not find our target, but ftd.best_trackdir contains the direction leading to the tile closest to our target. */ return ftd.best_trackdir & 7; /* TODO: Wrapper function? */ - else + } else { return -1; /* Already at target, reverse? */ + } } else { uint b; uint tot_dist, dist; @@ -676,19 +659,16 @@ static void ShipController(Vehicle *v) v->breakdown_ctr--; } - if (v->vehstatus & VS_STOPPED) - return; + if (v->vehstatus & VS_STOPPED) return; ProcessShipOrder(v); HandleShipLoading(v); - if (v->current_order.type == OT_LOADING) - return; + if (v->current_order.type == OT_LOADING) return; CheckShipLeaveDepot(v); - if (!ShipAccelerate(v)) - return; + if (!ShipAccelerate(v)) return; BeginVehicleMove(v); @@ -811,10 +791,8 @@ reverse_direction: static void AgeShipCargo(Vehicle *v) { - if (_age_cargo_skip_counter != 0) - return; - if (v->cargo_days != 255) - v->cargo_days++; + if (_age_cargo_skip_counter != 0) return; + if (v->cargo_days != 255) v->cargo_days++; } void Ship_Tick(Vehicle *v) diff --git a/ship_gui.c b/ship_gui.c index 1ce2503e3..01a115473 100644 --- a/ship_gui.c +++ b/ship_gui.c @@ -66,10 +66,10 @@ static void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection) { int image = GetShipImage(v, 6); uint32 ormod = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(v->owner)); - DrawSprite(image | ormod, x+32, y+10); + DrawSprite(image | ormod, x + 32, y + 10); if (v->index == selection) { - DrawFrameRect(x-5, y-1, x+67, y+21, 15, FR_BORDERONLY); + DrawFrameRect(x - 5, y - 1, x + 67, y + 21, 15, FR_BORDERONLY); } } @@ -100,7 +100,7 @@ static void ShipRefitWndProc(Window *w, WindowEvent *e) } break; case WE_CLICK: - switch(e->click.widget) { + switch (e->click.widget) { case 2: { /* listbox */ int y = e->click.pt.y - 25; if (y >= 0) { @@ -291,6 +291,7 @@ static void ShowShipDetailsWindow(const Vehicle* v) { Window *w; VehicleID veh = v->index; + DeleteWindowById(WC_VEHICLE_ORDERS, veh); DeleteWindowById(WC_VEHICLE_DETAILS, veh); _alloc_wnd_parent_num = veh; @@ -314,19 +315,14 @@ void CcBuildShip(bool success, TileIndex tile, uint32 p1, uint32 p2) void CcCloneShip(bool success, uint tile, uint32 p1, uint32 p2) { - if (success) { - const Vehicle* v = GetVehicle(_new_ship_id); - - ShowShipViewWindow(v); - } + if (success) ShowShipViewWindow(GetVehicle(_new_ship_id)); } static void NewShipWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: - if (w->window_number == 0) - w->disabled_state = 1 << 5; + if (w->window_number == 0) w->disabled_state = 1 << 5; // Setup scroll count { @@ -335,8 +331,7 @@ static void NewShipWndProc(Window *w, WindowEvent *e) const Engine* e = GetEngine(SHIP_ENGINES_INDEX); do { - if (HASBIT(e->player_avail, _local_player)) - count++; + if (HASBIT(e->player_avail, _local_player)) count++; } while (++e,--num); SetVScrollCount(w, count); } @@ -760,8 +755,9 @@ static void ClonePlaceObj(TileIndex tile, const Window* w) if (v != NULL) HandleCloneVehClick(v, w); } -static void ShipDepotWndProc(Window *w, WindowEvent *e) { - switch(e->event) { +static void ShipDepotWndProc(Window* w, WindowEvent* e) +{ + switch (e->event) { case WE_PAINT: DrawShipDepotWindow(w); break; @@ -896,10 +892,9 @@ static const WindowDesc _ship_depot_desc = { void ShowShipDepotWindow(TileIndex tile) { - Window *w; + Window* w = AllocateWindowDescFront(&_ship_depot_desc,tile); - w = AllocateWindowDescFront(&_ship_depot_desc,tile); - if (w) { + if (w != NULL) { w->caption_color = GetTileOwner(w->window_number); w->vscroll.cap = 2; w->hscroll.cap = 3; @@ -911,7 +906,8 @@ void ShowShipDepotWindow(TileIndex tile) } -static void DrawSmallOrderList(const Vehicle *v, int x, int y) { +static void DrawSmallOrderList(const Vehicle* v, int x, int y) +{ const Order *order; int sel, i = 0; @@ -920,7 +916,7 @@ static void DrawSmallOrderList(const Vehicle *v, int x, int y) { FOR_VEHICLE_ORDERS(v, order) { if (sel == 0) { _stringwidth_base = 0xE0; - DoDrawString( "\xAF", x-6, y, 16); + DoDrawString("\xAF", x - 6, y, 16); _stringwidth_base = 0; } sel--; @@ -931,8 +927,7 @@ static void DrawSmallOrderList(const Vehicle *v, int x, int y) { DrawString(x, y, STR_A036, 0); y += 6; - if (++i == 4) - break; + if (++i == 4) break; } } } @@ -1081,9 +1076,7 @@ static void PlayerShipsWndProc(Window *w, WindowEvent *e) case 9: { /* Build new Vehicle */ TileIndex tile; - if (!IsWindowOfPrototype(w, _player_ships_widgets)) - break; - + if (!IsWindowOfPrototype(w, _player_ships_widgets)) break; tile = _last_built_ship_depot_tile; do { @@ -1100,8 +1093,7 @@ static void PlayerShipsWndProc(Window *w, WindowEvent *e) } break; case 10: { - if (!IsWindowOfPrototype(w, _player_ships_widgets)) - break; + if (!IsWindowOfPrototype(w, _player_ships_widgets)) break; ShowReplaceVehicleWindow(VEH_Ship); break; @@ -1173,12 +1165,12 @@ void ShowPlayerShips(PlayerID player, StationID station) { Window *w; - if ( player == _local_player) { + if (player == _local_player) { w = AllocateWindowDescFront(&_player_ships_desc, (station << 16) | player); } else { w = AllocateWindowDescFront(&_other_player_ships_desc, (station << 16) | player); } - if (w) { + if (w != NULL) { w->caption_color = w->window_number; w->vscroll.cap = 4; w->widget[7].unkA = (w->vscroll.cap << 8) + 1; diff --git a/station_cmd.c b/station_cmd.c index c0a0203df..b0bceaf8e 100644 --- a/station_cmd.c +++ b/station_cmd.c @@ -44,8 +44,7 @@ static void StationPoolNewBlock(uint start_item) { Station *st; - FOR_ALL_STATIONS_FROM(st, start_item) - st->index = start_item++; + FOR_ALL_STATIONS_FROM(st, start_item) st->index = start_item++; } /** @@ -55,8 +54,7 @@ static void RoadStopPoolNewBlock(uint start_item) { RoadStop *rs; - FOR_ALL_ROADSTOPS_FROM(rs, start_item) - rs->index = start_item++; + FOR_ALL_ROADSTOPS_FROM(rs, start_item) rs->index = start_item++; } /* Initialize the station-pool and roadstop-pool */ @@ -96,7 +94,7 @@ static void InitializeRoadStop(RoadStop *road_stop, RoadStop *previous, TileInde road_stop->station = index; } -RoadStop * GetPrimaryRoadStop(const Station *st, RoadStopType type) +RoadStop* GetPrimaryRoadStop(const Station* st, RoadStopType type) { switch (type) { case RS_BUS: return st->bus_stops; @@ -107,13 +105,14 @@ RoadStop * GetPrimaryRoadStop(const Station *st, RoadStopType type) return NULL; } -RoadStop * GetRoadStopByTile(TileIndex tile, RoadStopType type) +RoadStop* GetRoadStopByTile(TileIndex tile, RoadStopType type) { - const Station *st = GetStation(_m[tile].m2); - RoadStop *rs; + const Station* st = GetStation(_m[tile].m2); + RoadStop* rs; - for ( rs = GetPrimaryRoadStop(st, type); rs->xy != tile; rs = rs->next) + for (rs = GetPrimaryRoadStop(st, type); rs->xy != tile; rs = rs->next) { assert(rs->next != NULL); + } return rs; } @@ -145,8 +144,7 @@ RoadStop *AllocateRoadStop(void) } /* Check if we can add a block to the pool */ - if (AddBlockToPool(&_roadstop_pool)) - return AllocateRoadStop(); + if (AddBlockToPool(&_roadstop_pool)) return AllocateRoadStop(); return NULL; } @@ -266,8 +264,7 @@ static Station *AllocateStation(void) } /* Check if we can add a block to the pool */ - if (AddBlockToPool(&_station_pool)) - return AllocateStation(); + if (AddBlockToPool(&_station_pool)) return AllocateStation(); _error_message = STR_3008_TOO_MANY_STATIONS_LOADING; return NULL; @@ -480,10 +477,10 @@ static void UpdateStationVirtCoord(Station *st) // Update the virtual coords needed to draw the station sign for all stations. void UpdateAllStationVirtCoord(void) { - Station *st; + Station* st; + FOR_ALL_STATIONS(st) { - if (st->xy != 0) - UpdateStationVirtCoord(st); + if (st->xy != 0) UpdateStationVirtCoord(st); } } @@ -602,8 +599,7 @@ void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile, uint i; GetAcceptedCargo(tile, ac); - for (i = 0; i < lengthof(ac); ++i) - accepts[i] += ac[i]; + for (i = 0; i < lengthof(ac); ++i) accepts[i] += ac[i]; } } } @@ -642,8 +638,7 @@ static void UpdateStationAcceptance(Station *st, bool show_msg) rect.min_y = MapSizeY(); rect.max_x = rect.max_y = 0; // Don't update acceptance for a buoy - if (IsBuoy(st)) - return; + if (IsBuoy(st)) return; /* old accepted goods types */ old_acc = GetAcceptanceMask(st); @@ -732,7 +727,8 @@ static void UpdateStationAcceptance(Station *st, bool show_msg) // This is called right after a station was deleted. // It checks if the whole station is free of substations, and if so, the station will be // deleted after a little while. -static void DeleteStationIfEmpty(Station *st) { +static void DeleteStationIfEmpty(Station* st) +{ if (st->facilities == 0) { st->delete_ctr = 0; InvalidateWindow(WC_STATION_LIST, st->owner); @@ -753,8 +749,7 @@ int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invali int flat_z; BEGIN_TILE_LOOP(tile_cur, w, h, tile) - if (!EnsureNoVehicle(tile_cur)) - return CMD_ERROR; + if (!EnsureNoVehicle(tile_cur)) return CMD_ERROR; tileh = GetTileSlope(tile_cur, &z); @@ -767,9 +762,7 @@ int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invali b) the build_on_slopes switch is disabled */ if (IsSteepTileh(tileh) || - ((_is_old_ai_player || !_patches.build_on_slopes) - && tileh != 0)) { - + ((_is_old_ai_player || !_patches.build_on_slopes) && tileh != 0)) { _error_message = STR_0007_FLAT_LAND_REQUIRED; return CMD_ERROR; } @@ -897,7 +890,6 @@ static inline byte *CreateMulti(byte *layout, int n, byte b) return layout; } -// stolen from TTDPatch static void GetStationLayout(byte *layout, int numtracks, int plat_len, const StationSpec *spec) { if (spec != NULL && spec->lengths >= plat_len && @@ -912,9 +904,8 @@ static void GetStationLayout(byte *layout, int numtracks, int plat_len, const St if (plat_len == 1) { CreateSingle(layout, numtracks); } else { - if (numtracks & 1) - layout = CreateSingle(layout, plat_len); - numtracks>>=1; + if (numtracks & 1) layout = CreateSingle(layout, plat_len); + numtracks >>= 1; while (--numtracks >= 0) { layout = CreateMulti(layout, plat_len, 4); @@ -1004,24 +995,19 @@ int32 CmdBuildRailroadStation(int x, int y, uint32 flags, uint32 p1, uint32 p2) } //XXX can't we pack this in the "else" part of the if above? - if (!CheckStationSpreadOut(st, tile_org, w_org, h_org)) - return CMD_ERROR; - + if (!CheckStationSpreadOut(st, tile_org, w_org, h_org)) return CMD_ERROR; } else { // Create a new station st = AllocateStation(); - if (st == NULL) - return CMD_ERROR; + if (st == NULL) return CMD_ERROR; st->town = ClosestTownFromTile(tile_org, (uint)-1); - if (_current_player < MAX_PLAYERS && flags&DC_EXEC) + if (_current_player < MAX_PLAYERS && flags & DC_EXEC) SETBIT(st->town->have_ratings, _current_player); - if (!GenerateStationName(st, tile_org, 0)) - return CMD_ERROR; + if (!GenerateStationName(st, tile_org, 0)) return CMD_ERROR; - if (flags & DC_EXEC) - StationInitialize(st, tile_org); + if (flags & DC_EXEC) StationInitialize(st, tile_org); } if (flags & DC_EXEC) { @@ -1176,20 +1162,26 @@ uint GetStationPlatforms(const Station *st, TileIndex tile) TileIndex t; TileIndexDiff delta; int dir; - int len; + uint len; assert(TileBelongsToRailStation(st, tile)); len = 0; - dir = _m[tile].m5&1; + dir = _m[tile].m5 & 1; delta = dir ? TileDiffXY(0, 1) : TileDiffXY(1, 0); // find starting tile.. t = tile; - do { t -= delta; len++; } while (TileBelongsToRailStation(st, t) && (_m[t].m5&1) == dir); + do { + t -= delta; + len++; + } while (TileBelongsToRailStation(st, t) && (_m[t].m5 & 1) == dir); // find ending tile t = tile; - do { t += delta; len++; }while (TileBelongsToRailStation(st, t) && (_m[t].m5&1) == dir); + do { + t += delta; + len++; + } while (TileBelongsToRailStation(st, t) && (_m[t].m5 & 1) == dir); return len - 1; } @@ -1396,17 +1388,15 @@ int32 CmdBuildRoadStop(int x, int y, uint32 flags, uint32 p1, uint32 p2) return CMD_ERROR; cost = CheckFlatLandBelow(tile, 1, 1, flags, 1 << p1, NULL); - if (cost == CMD_ERROR) - return CMD_ERROR; + if (cost == CMD_ERROR) return CMD_ERROR; st = GetStationAround(tile, 1, 1, -1); - if (st == CHECK_STATIONS_ERR) - return CMD_ERROR; + if (st == CHECK_STATIONS_ERR) return CMD_ERROR; /* 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) st = NULL; } //give us a road stop in the list, and check if something went wrong @@ -1429,8 +1419,7 @@ int32 CmdBuildRoadStop(int x, int y, uint32 flags, uint32 p1, uint32 p2) Town *t; st = AllocateStation(); - if (st == NULL) - return CMD_ERROR; + if (st == NULL) return CMD_ERROR; st->town = t = ClosestTownFromTile(tile, (uint)-1); @@ -1441,11 +1430,9 @@ int32 CmdBuildRoadStop(int x, int y, uint32 flags, uint32 p1, uint32 p2) st->sign.width_1 = 0; - if (!GenerateStationName(st, tile, 0)) - return CMD_ERROR; + if (!GenerateStationName(st, tile, 0)) return CMD_ERROR; - if (flags & DC_EXEC) - StationInitialize(st, tile); + if (flags & DC_EXEC) StationInitialize(st, tile); } cost += (type) ? _price.build_truck_station : _price.build_bus_station; @@ -1489,7 +1476,7 @@ static int32 RemoveRoadStop(Station *st, uint32 flags, TileIndex tile) if (_current_player != OWNER_WATER && !CheckOwnership(st->owner)) return CMD_ERROR; - if (is_truck) { //truck stop + if (is_truck) { // truck stop primary_stop = &st->truck_stops; cur_stop = GetRoadStopByTile(tile, RS_TRUCK); } else { @@ -1503,7 +1490,7 @@ static int32 RemoveRoadStop(Station *st, uint32 flags, TileIndex tile) return CMD_ERROR; if (flags & DC_EXEC) { - int i; + uint i; DoClearSquare(tile); /* Clear all vehicles destined for this station */ @@ -1515,19 +1502,14 @@ static int32 RemoveRoadStop(Station *st, uint32 flags, TileIndex tile) } cur_stop->used = false; - if (cur_stop->prev != NULL) //alter previous stop - cur_stop->prev->next = cur_stop->next; - - if (cur_stop->next != NULL) //alter next stop - cur_stop->next->prev = cur_stop->prev; + if (cur_stop->prev != NULL) cur_stop->prev->next = cur_stop->next; + if (cur_stop->next != NULL) cur_stop->next->prev = cur_stop->prev; //we only had one stop left if (cur_stop->next == NULL && cur_stop->prev == NULL) { - //so we remove ALL stops *primary_stop = NULL; st->facilities &= (is_truck) ? ~FACIL_TRUCK_STOP : ~FACIL_BUS_STOP; - } else if (cur_stop == *primary_stop) { //removed the first stop in the list //need to set the primary element to the next stop @@ -1666,7 +1648,7 @@ int32 CmdBuildAirport(int x, int y, uint32 flags, uint32 p1, uint32 p2) st->town = t; - if (_current_player < MAX_PLAYERS && flags&DC_EXEC) + if (_current_player < MAX_PLAYERS && flags & DC_EXEC) SETBIT(t->have_ratings, _current_player); st->sign.width_1 = 0; @@ -1697,12 +1679,13 @@ int32 CmdBuildAirport(int x, int y, uint32 flags, uint32 p1, uint32 p2) st->build_date = _date; - /* if airport was demolished while planes were en-route to it, the positions can no longer - be the same (v->u.air.pos), since different airports have different indexes. So update - all planes en-route to this airport. Only update if - 1. airport is upgraded - 2. airport is added to existing station (unfortunately unavoideable) - */ + /* if airport was demolished while planes were en-route to it, the + * positions can no longer be the same (v->u.air.pos), since different + * airports have different indexes. So update all planes en-route to this + * airport. Only update if + * 1. airport is upgraded + * 2. airport is added to existing station (unfortunately unavoideable) + */ if (airport_upgrade) UpdateAirplanesOnNewStation(st); { @@ -1850,11 +1833,8 @@ static int32 RemoveBuoy(Station *st, uint32 flags) tile = st->dock_tile; - if (CheckShipsOnBuoy(st)) - return_cmd_error(STR_BUOY_IS_IN_USE); - - if (!EnsureNoVehicle(tile)) - return CMD_ERROR; + if (CheckShipsOnBuoy(st)) return_cmd_error(STR_BUOY_IS_IN_USE); + if (!EnsureNoVehicle(tile)) return CMD_ERROR; if (flags & DC_EXEC) { st->dock_tile = 0; @@ -1963,8 +1943,7 @@ int32 CmdBuildDock(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (!GenerateStationName(st, tile, 3)) return CMD_ERROR; - if (flags & DC_EXEC) - StationInitialize(st, tile); + if (flags & DC_EXEC) StationInitialize(st, tile); } if (flags & DC_EXEC) { @@ -2001,17 +1980,13 @@ static int32 RemoveDock(Station *st, uint32 flags) TileIndex tile1; TileIndex tile2; - if (!CheckOwnership(st->owner)) - return CMD_ERROR; + if (!CheckOwnership(st->owner)) return CMD_ERROR; tile1 = st->dock_tile; tile2 = tile1 + TileOffsByDir(_m[tile1].m5 - 0x4C); - if (!EnsureNoVehicle(tile1)) - return CMD_ERROR; - - if (!EnsureNoVehicle(tile2)) - return CMD_ERROR; + if (!EnsureNoVehicle(tile1)) return CMD_ERROR; + if (!EnsureNoVehicle(tile2)) return CMD_ERROR; if (flags & DC_EXEC) { DoClearSquare(tile1); @@ -2048,8 +2023,7 @@ static void DrawTile_Station(TileInfo *ti) { PlayerID owner = GetTileOwner(ti->tile); image_or_modificator = PALETTE_TO_GREY; /* NOTE: possible bug in ttd here? */ - if (owner < MAX_PLAYERS) - image_or_modificator = PLAYER_SPRITE_COLOR(owner); + if (owner < MAX_PLAYERS) image_or_modificator = PLAYER_SPRITE_COLOR(owner); } // don't show foundation for docks (docks are between 76 (0x4C) and 81 (0x51)) @@ -2074,8 +2048,7 @@ static void DrawTile_Station(TileInfo *ti) if (t == NULL) t = &_station_display_datas[ti->map5]; image = t->ground_sprite; - if (image & PALETTE_MODIFIER_COLOR) - image |= image_or_modificator; + if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator; // For custom sprites, there's no railtype-based pitching. offset = (image & SPRITE_MASK) < _custom_sprites_base ? rti->total_offset : railtype; @@ -2124,8 +2097,7 @@ void StationPickerDrawSprite(int x, int y, RailType railtype, int image) t = &_station_display_datas[image]; img = t->ground_sprite; - if (img & PALETTE_MODIFIER_COLOR) - img |= ormod; + if (img & PALETTE_MODIFIER_COLOR) img |= ormod; DrawSprite(img + rti->total_offset, x, y); foreach_draw_tile_seq(dtss, t->seq) { @@ -2280,7 +2252,6 @@ static uint32 VehicleEnter_Station(Vehicle *v, TileIndex tile, int x, int y) { StationID station_id; byte dir; - uint16 spd; if (v->type == VEH_Train) { if (IS_BYTE_INSIDE(_m[tile].m5, 0, 8) && v->subtype == TS_Front_Engine && @@ -2289,7 +2260,6 @@ static uint32 VehicleEnter_Station(Vehicle *v, TileIndex tile, int x, int y) 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) { @@ -2299,15 +2269,14 @@ static uint32 VehicleEnter_Station(Vehicle *v, TileIndex tile, int x, int y) dir = v->direction & 6; if (dir & 2) intswap(x,y); if (y == 8) { - if (dir != 2 && dir != 4) { - x = (~x)&0xF; - } + if (dir != 2 && dir != 4) x = ~x & 0xF; if (x == 12) return 2 | (station_id << 8); /* enter station */ if (x < 12) { + uint16 spd; + v->vehstatus |= VS_TRAIN_SLOWING; spd = _enter_station_speedtable[x]; - if (spd < v->cur_speed) - v->cur_speed = spd; + if (spd < v->cur_speed) v->cur_speed = spd; } } } @@ -2391,8 +2360,7 @@ static void DeleteStation(Station *st) } } //Orders for the vehicle have been changed, invalidate the window - if (invalidate) - InvalidateWindow(WC_VEHICLE_ORDERS, v->index); + if (invalidate) InvalidateWindow(WC_VEHICLE_ORDERS, v->index); } //Subsidies need removal as well @@ -2404,8 +2372,7 @@ void DeleteAllPlayerStations(void) Station *st; FOR_ALL_STATIONS(st) { - if (st->xy && st->owner < MAX_PLAYERS) - DeleteStation(st); + if (st->xy != 0 && st->owner < MAX_PLAYERS) DeleteStation(st); } } @@ -2435,10 +2402,7 @@ static void StationHandleBigTick(Station *st) { UpdateStationAcceptance(st, true); - if (st->facilities == 0) { - if (++st->delete_ctr >= 8) - DeleteStation(st); - } + if (st->facilities == 0 && ++st->delete_ctr >= 8) DeleteStation(st); // Here we saveguard against orphaned slots CheckOrphanedSlots(st, RS_BUS); @@ -2546,15 +2510,13 @@ static void StationHandleSmallTick(Station *st) { byte b; - if (st->facilities == 0) - return; + if (st->facilities == 0) return; b = st->delete_ctr + 1; if (b >= 185) b = 0; st->delete_ctr = b; - if (b == 0) - UpdateStationRating(st); + if (b == 0) UpdateStationRating(st); } void OnTick_Station(void) @@ -2562,22 +2524,17 @@ void OnTick_Station(void) uint i; Station *st; - if (_game_mode == GM_EDITOR) - return; + if (_game_mode == GM_EDITOR) return; i = _station_tick_ctr; - if (++_station_tick_ctr == GetStationPoolSize()) - _station_tick_ctr = 0; + if (++_station_tick_ctr == GetStationPoolSize()) _station_tick_ctr = 0; st = GetStation(i); - if (st->xy != 0) - StationHandleBigTick(st); + if (st->xy != 0) StationHandleBigTick(st); FOR_ALL_STATIONS(st) { - if (st->xy != 0) - StationHandleSmallTick(st); + if (st->xy != INVALID_TILE) StationHandleSmallTick(st); } - } void StationMonthlyLoop(void) @@ -2623,7 +2580,7 @@ static void UpdateStationWaiting(Station *st, int type, uint amount) */ int32 CmdRenameStation(int x, int y, uint32 flags, uint32 p1, uint32 p2) { - StringID str,old_str; + StringID str; Station *st; if (!IsStationIndex(p1) || _cmd_text[0] == '\0') return CMD_ERROR; @@ -2635,7 +2592,8 @@ int32 CmdRenameStation(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (str == 0) return CMD_ERROR; if (flags & DC_EXEC) { - old_str = st->string_id; + StringID old_str = st->string_id; + st->string_id = str; UpdateStationVirtCoord(st); DeleteName(old_str); @@ -2686,7 +2644,7 @@ uint MoveGoodsToStation(TileIndex tile, int w, int h, int type, uint amount) cur_tile = TILE_MASK(cur_tile); if (IsTileType(cur_tile, MP_STATION)) { st_index = _m[cur_tile].m2; - for(i=0; i!=8; i++) { + for (i = 0; i != 8; i++) { if (around[i] == INVALID_STATION) { st = GetStation(st_index); if (!IsBuoy(st) && @@ -2788,7 +2746,7 @@ uint MoveGoodsToStation(TileIndex tile, int w, int h, int type, uint amount) void BuildOilRig(TileIndex tile) { - int j; + uint j; Station *st = AllocateStation(); if (st == NULL) { @@ -2804,11 +2762,11 @@ void BuildOilRig(TileIndex tile) st->sign.width_1 = 0; SetTileType(tile, MP_STATION); - _m[tile].m5 = 0x4B; SetTileOwner(tile, OWNER_NONE); + _m[tile].m2 = st->index; _m[tile].m3 = 0; _m[tile].m4 = 0; - _m[tile].m2 = st->index; + _m[tile].m5 = 0x4B; st->owner = OWNER_NONE; st->airport_flags = 0; @@ -2887,24 +2845,14 @@ static int32 ClearTile_Station(TileIndex tile, byte flags) st = GetStation(_m[tile].m2); - if (m5 < 8) - return RemoveRailroadStation(st, tile, flags); - + if (m5 < 8) return RemoveRailroadStation(st, tile, flags); // original airports < 67, new airports between 83 - 114 - if (m5 < 0x43 || ( m5 >= 83 && m5 <= 114) ) - return RemoveAirport(st, flags); - - if (m5 < 0x4B) - return RemoveRoadStop(st, flags, tile); - - if (m5 == 0x52) - return RemoveBuoy(st, flags); - - if (m5 != 0x4B && m5 < 0x53) - return RemoveDock(st, flags); + if (m5 < 0x43 || (m5 >= 83 && m5 <= 114)) return RemoveAirport(st, flags); + if (m5 < 0x4B) return RemoveRoadStop(st, flags, tile); + if (m5 == 0x52) return RemoveBuoy(st, flags); + if (m5 != 0x4B && m5 < 0x53) return RemoveDock(st, flags); return CMD_ERROR; - } void InitializeStations(void) @@ -3036,8 +2984,9 @@ static void SaveLoad_STNS(Station *st) SlObject(&st->goods[i], _goods_desc); /* In older versions, enroute_from had 0xFF as INVALID_STATION, is now 0xFFFF */ - if (_sl_full_version < 0x700 && st->goods[i].enroute_from == 0xFF) + if (_sl_full_version < 0x700 && st->goods[i].enroute_from == 0xFF) { st->goods[i].enroute_from = INVALID_STATION; + } } } @@ -3066,10 +3015,11 @@ static void Load_STNS(void) SaveLoad_STNS(st); // this means it's an oldstyle savegame without support for nonuniform stations - if (st->train_tile && st->trainst_h == 0) { + if (st->train_tile != 0 && st->trainst_h == 0) { int w = st->trainst_w >> 4; int h = st->trainst_w & 0xF; - if (_m[st->train_tile].m5&1) intswap(w,h); + + if (_m[st->train_tile].m5 & 1) intswap(w, h); st->trainst_w = w; st->trainst_h = h; } @@ -3094,8 +3044,7 @@ static void Load_STNS(void) } /* This is to ensure all pointers are within the limits of _stations_size */ - if (_station_tick_ctr > GetStationPoolSize()) - _station_tick_ctr = 0; + if (_station_tick_ctr > GetStationPoolSize()) _station_tick_ctr = 0; } static void Save_ROADSTOP(void) diff --git a/station_gui.c b/station_gui.c index 48d3fdf6c..268ec56ee 100644 --- a/station_gui.c +++ b/station_gui.c @@ -22,34 +22,33 @@ static void StationsWndShowStationRating(int x, int y, int type, uint acceptance int color = _rating_colors[type]; uint w; - if (acceptance > 575) - acceptance = 575; + if (acceptance > 575) acceptance = 575; - acceptance = (acceptance + 7) >> 3; + acceptance = (acceptance + 7) / 8; /* draw cargo */ - if ( (w=acceptance>>3) != 0) { - GfxFillRect(x, y, x+w-1, y+6, color); + w = acceptance / 8; + if (w != 0) { + GfxFillRect(x, y, x + w - 1, y + 6, color); x += w; } - if ( (w=acceptance&7) != 0) { - if (w==7) w--; - GfxFillRect(x, y+(w-1), x, y+6, color); + w = acceptance % 8; + if (w != 0) { + if (w == 7) w--; + GfxFillRect(x, y + (w - 1), x, y + 6, color); } - x -= (acceptance>>3); + x -= acceptance / 8; - DrawString(x+1, y, _cargoc.names_short[type], 0x10); + DrawString(x + 1, y, _cargoc.names_short[type], 0x10); /* draw green/red ratings bar */ - GfxFillRect(x+1, y+8, x+7, y+8, 0xB8); + GfxFillRect(x + 1, y + 8, x + 7, y + 8, 0xB8); - rating = (rating >> 5); + rating >>= 5; - if (rating != 0) { - GfxFillRect(x+1, y+8, x+rating, y+8, 0xD0); - } + if (rating != 0) GfxFillRect(x + 1, y + 8, x + rating, y + 8, 0xD0); } static uint16 _num_station_sort[MAX_PLAYERS]; @@ -67,7 +66,7 @@ static int CDECL StationNameSorter(const void *a, const void *b) argv[0] = cmp1->index; GetStringWithArgs(buf1, STR_STATION, argv); - if ( cmp2->index != _last_station_idx) { + if (cmp2->index != _last_station_idx) { _last_station_idx = cmp2->index; argv[0] = cmp2->index; GetStringWithArgs(_bufcache, STR_STATION, argv); @@ -91,7 +90,7 @@ static void GlobalSortStationList(void) error("Could not allocate memory for the station-sorting-list"); FOR_ALL_STATIONS(st) { - if(st->xy && st->owner != OWNER_NONE) { + if (st->xy != 0 && st->owner != OWNER_NONE) { _station_sort[n].index = st->index; _station_sort[n++].owner = st->owner; _num_station_sort[st->owner]++; // add number of stations of player @@ -101,7 +100,9 @@ static void GlobalSortStationList(void) // create cumulative station-ownership // stations are stored as a cummulative index, eg 25, 41, 43. This means // Player0: 25; Player1: (41-25) 16; Player2: (43-41) 2 - for (i = &_num_station_sort[1]; i != endof(_num_station_sort); i++) {*i += *(i-1);} + for (i = &_num_station_sort[1]; i != endof(_num_station_sort); i++) { + *i += *(i - 1); + } qsort(_station_sort, n, sizeof(_station_sort[0]), GeneralOwnerSorter); // sort by owner @@ -135,18 +136,14 @@ static void MakeSortedStationList(PlayerID owner) static void PlayerStationsWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { const PlayerID owner = w->window_number; uint32 i; // resort station window if stations have been added/removed - if (_global_station_sort_dirty) - GlobalSortStationList(); - - if (_station_sort_dirty[owner]) { // resort in case of a station rename. - MakeSortedStationList(owner); - } + if (_global_station_sort_dirty) GlobalSortStationList(); + if (_station_sort_dirty[owner]) MakeSortedStationList(owner); // stations are stored as a cummulative index, eg 25, 41, 43. This means // Player0: 25; Player1: (41-25) 16; Player2: (43-41) 2 stations @@ -187,8 +184,9 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e) x = DrawString(xb, y, STR_3049_0, 0) + 5; // show cargo waiting and station ratings - for(j=0; j!=NUM_CARGO; j++) { - int acc = GB(st->goods[j].waiting_acceptance, 0, 12); + for (j = 0; j != NUM_CARGO; j++) { + uint acc = GB(st->goods[j].waiting_acceptance, 0, 12); + if (acc != 0) { StationsWndShowStationRating(x, y, j, acc, st->goods[j].rating); x += 10; @@ -196,16 +194,16 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e) } y += 10; i++; // next station - if (++p == w->vscroll.cap) { break;} // max number of stations in 1 window + if (++p == w->vscroll.cap) break; // max number of stations in 1 window } } } break; case WE_CLICK: { - switch(e->click.widget) { + switch (e->click.widget) { case 3: { uint32 id_v = (e->click.pt.y - 15) / 10; - if (id_v >= w->vscroll.cap) { return;} // click out of bounds + if (id_v >= w->vscroll.cap) return; // click out of bounds id_v += w->vscroll.pos; @@ -215,7 +213,7 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e) id_v += (owner == 0) ? 0 : _num_station_sort[owner - 1]; // first element in list - if (id_v >= _num_station_sort[owner]) { return;} // click out of station bound + if (id_v >= _num_station_sort[owner]) return; // click out of station bound st = GetStation(_station_sort[id_v].index); @@ -229,7 +227,7 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e) case WE_4: WP(w,plstations_d).refresh_counter++; - if (WP(w,plstations_d).refresh_counter==5) { + if (WP(w,plstations_d).refresh_counter == 5) { WP(w,plstations_d).refresh_counter = 0; SetWindowDirty(w); } @@ -320,11 +318,10 @@ static void DrawStationViewWindow(Window *w) StringID str; num = 1; - for(i=0; i!=NUM_CARGO; i++) { + for (i = 0; i != NUM_CARGO; i++) { if (GB(st->goods[i].waiting_acceptance, 0, 12) != 0) { num++; - if (st->goods[i].enroute_from != station_id) - num++; + if (st->goods[i].enroute_from != station_id) num++; } } SetVScrollCount(w, num); @@ -347,8 +344,9 @@ static void DrawStationViewWindow(Window *w) if (--pos < 0) { str = STR_00D0_NOTHING; - for(i=0; i!=NUM_CARGO; i++) + for (i = 0; i != NUM_CARGO; i++) { if (GB(st->goods[i].waiting_acceptance, 0, 12) != 0) str = STR_EMPTY; + } SetDParam(0, str); DrawString(x, y, STR_0008_WAITING, 0); y += 10; @@ -357,8 +355,7 @@ static void DrawStationViewWindow(Window *w) i = 0; do { uint waiting = GB(st->goods[i].waiting_acceptance, 0, 12); - if (waiting == 0) - continue; + if (waiting == 0) continue; num = (waiting + 5) / 10; if (num != 0) { @@ -417,11 +414,10 @@ static void DrawStationViewWindow(Window *w) DrawStringMultiLine(2, 67, STR_SPEC_USERSTRING, 245); } else { - DrawString(2, 67, STR_3034_LOCAL_RATING_OF_TRANSPORT, 0); y = 77; - for(i=0; i!=NUM_CARGO; i++) { + for (i = 0; i != NUM_CARGO; i++) { if (st->goods[i].enroute_from != INVALID_STATION) { SetDParam(0, _cargoc.names_s[i]); SetDParam(2, st->goods[i].rating * 101 >> 8); @@ -436,13 +432,13 @@ static void DrawStationViewWindow(Window *w) static void StationViewWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: DrawStationViewWindow(w); break; case WE_CLICK: - switch(e->click.widget) { + switch (e->click.widget) { case 7: ScrollMainWindowToTile(GetStation(w->window_number)->xy); break; @@ -198,21 +198,21 @@ typedef unsigned char byte; static inline uint16 TO_LE16(uint16 x) { return BSWAP16(x); } static inline uint32 FROM_LE32(uint32 x) { return BSWAP32(x); } static inline uint16 FROM_LE16(uint16 x) { return BSWAP16(x); } -# define TO_BE32(x) x -# define TO_BE16(x) x -# define FROM_BE32(x) x -# define FROM_BE16(x) x -# define TO_BE32X(x) x +# define TO_BE32(x) (x) +# define TO_BE16(x) (x) +# define FROM_BE32(x) (x) +# define FROM_BE16(x) (x) +# define TO_BE32X(x) (x) #else static inline uint32 TO_BE32(uint32 x) { return BSWAP32(x); } static inline uint16 TO_BE16(uint16 x) { return BSWAP16(x); } static inline uint32 FROM_BE32(uint32 x) { return BSWAP32(x); } static inline uint16 FROM_BE16(uint16 x) { return BSWAP16(x); } -# define TO_LE32(x) x -# define TO_LE16(x) x +# define TO_LE32(x) (x) +# define TO_LE16(x) (x) # define TO_BE32X(x) BSWAP32(x) -# define FROM_LE32(x) x -# define FROM_LE16(x) x +# define FROM_LE32(x) (x) +# define FROM_LE16(x) (x) #endif /* TTD_BIG_ENDIAN */ #if !defined(GAME_DATA_DIR) @@ -241,7 +241,7 @@ typedef unsigned char byte; assert_compile(sizeof(uint32) == 4); assert_compile(sizeof(uint16) == 2); -assert_compile(sizeof(uint8) == 1); +assert_compile(sizeof(uint8) == 1); #define lengthof(x) (sizeof(x)/sizeof(x[0])) #define endof(x) (&x[lengthof(x)]) @@ -188,11 +188,12 @@ char *GetStringWithArgs(char *buffr, uint string, const int32 *argv) return FormatString(buffr, _userstring, NULL, 0); } - if (index >= _langtab_num[tab]) + if (index >= _langtab_num[tab]) { error( "!String 0x%X is invalid. " "Probably because an old version of the .lng file.\n", string ); + } return FormatString(buffr, GetStringPtr(GB(string, 0, 16)), argv, GB(string, 24, 8)); } @@ -317,7 +318,7 @@ static char *FormatYmdString(char *buff, uint16 number) memcpy(buff, GetStringPtr(STR_0162_JAN + ymd.month), 4); buff[3] = ' '; - return FormatNoCommaNumber(buff+4, ymd.year + MAX_YEAR_BEGIN_REAL); + return FormatNoCommaNumber(buff + 4, ymd.year + MAX_YEAR_BEGIN_REAL); } static char *FormatMonthAndYear(char *buff, uint16 number) @@ -615,8 +616,7 @@ static char *FormatString(char *buff, const char *str, const int32 *argv, uint c byte *s = (byte*)GetStringPtr(argv_orig[(byte)*str++]); // contains the string that determines gender. int len; int gender = 0; - if (s && s[0] == 0x87) - gender = s[1]; + if (s != NULL && s[0] == 0x87) gender = s[1]; str = ParseStringChoice(str, gender, buff, &len); buff += len; break; @@ -715,7 +715,8 @@ static char *FormatString(char *buff, const char *str, const int32 *argv, uint c case 0x9B: { // {TOWN} const Town* t = GetTown(GetInt32(&argv)); int32 temp[1]; - assert(t->xy); + + assert(t->xy != 0); temp[0] = t->townnameparts; buff = GetStringWithArgs(buff, t->townnametype, temp); @@ -728,7 +729,7 @@ static char *FormatString(char *buff, const char *str, const int32 *argv, uint c } case 0x9D: { // {SETCASE} - // This is a pseudo command, it's outputted when someone does {STRING.ack} + // This is a pseudo command, it's outputted when someone does {STRING.ack} // The modifier is added to all subsequent GetStringWithArgs that accept the modifier. modifier = (byte)*str++ << 24; break; diff --git a/subsidy_gui.c b/subsidy_gui.c index 70cc3078c..647cefc3e 100644 --- a/subsidy_gui.c +++ b/subsidy_gui.c @@ -17,14 +17,14 @@ static void HandleSubsidyClick(int y) { const Subsidy* s; - int num,offs; + uint num; + int offs; TileIndex xy; - if (y < 0) - return; + if (y < 0) return; num = 0; - for(s=_subsidies; s != endof(_subsidies); s++) { + for (s = _subsidies; s != endof(_subsidies); s++) { if (s->cargo_type != CT_INVALID && s->age < 12) { y -= 10; if (y < 0) goto handle_click; @@ -40,7 +40,7 @@ static void HandleSubsidyClick(int y) y -= 11; if (y < 0) return; - for(s=_subsidies; s != endof(_subsidies); s++) { + for (s = _subsidies; s != endof(_subsidies); s++) { if (s->cargo_type != CT_INVALID && s->age >= 12) { y -= 10; if (y < 0) goto handle_click; @@ -78,7 +78,9 @@ static void DrawSubsidiesWindow(const Window* w) { YearMonthDay ymd; const Subsidy* s; - int x,xt,y,num,x2; + uint num; + int x; + int y; DrawWindowWidgets(w); @@ -90,10 +92,12 @@ static void DrawSubsidiesWindow(const Window* w) y += 10; num = 0; - for(s=_subsidies; s != endof(_subsidies); s++) { + for (s = _subsidies; s != endof(_subsidies); s++) { if (s->cargo_type != CT_INVALID && s->age < 12) { + int x2; + SetupSubsidyDecodeParam(s, 1); - x2 = DrawString(x+2, y, STR_2027_FROM_TO, 0); + x2 = DrawString(x + 2, y, STR_2027_FROM_TO, 0); SetDParam(0, _date - ymd.day + 384 - s->age * 32); DrawString(x2, y, STR_2028_BY, 0); @@ -103,17 +107,18 @@ static void DrawSubsidiesWindow(const Window* w) } if (num == 0) { - DrawString(x+2, y, STR_202A_NONE, 0); + DrawString(x + 2, y, STR_202A_NONE, 0); y += 10; } - DrawString(x, y+1, STR_202B_SERVICES_ALREADY_SUBSIDISED, 0); + DrawString(x, y + 1, STR_202B_SERVICES_ALREADY_SUBSIDISED, 0); y += 10; num = 0; - for(s=_subsidies; s != endof(_subsidies); s++) { + for (s = _subsidies; s != endof(_subsidies); s++) { if (s->cargo_type != CT_INVALID && s->age >= 12) { const Player* p; + int xt; SetupSubsidyDecodeParam(s, 1); @@ -121,7 +126,7 @@ static void DrawSubsidiesWindow(const Window* w) SetDParam(3, p->name_1); SetDParam(4, p->name_2); - xt = DrawString(x+2, y, STR_202C_FROM_TO, 0); + xt = DrawString(x + 2, y, STR_202C_FROM_TO, 0); SetDParam(0, _date - ymd.day + 768 - s->age * 32); DrawString(xt, y, STR_202D_UNTIL, 0); @@ -130,21 +135,19 @@ static void DrawSubsidiesWindow(const Window* w) } } - if (num == 0) { - DrawString(x+2, y, STR_202A_NONE, 0); - } + if (num == 0) DrawString(x + 2, y, STR_202A_NONE, 0); } static void SubsidiesListWndProc(Window *w, WindowEvent *e) { - switch(e->event) { - case WE_PAINT: DrawSubsidiesWindow(w); break; - case WE_CLICK: { - switch(e->click.widget) { - case 2: HandleSubsidyClick(e->click.pt.y - 25); break; - } - } - break; + switch (e->event) { + case WE_PAINT: DrawSubsidiesWindow(w); break; + + case WE_CLICK: + switch (e->click.widget) { + case 2: HandleSubsidyClick(e->click.pt.y - 25); break; + } + break; } } diff --git a/table/engines.h b/table/engines.h index b1ace97c6..df9b9bc25 100644 --- a/table/engines.h +++ b/table/engines.h @@ -469,7 +469,7 @@ const AircraftVehicleInfo orig_aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES] = { { 6, 18, 240, 3, SND_09_JET, 40, 74, 30, 200 }, /* 5 */ { 2, 17, 150, 1, SND_09_JET, 35, 74, 15, 100 }, /* 6 */ { 2, 18, 245, 3, SND_09_JET, 40, 74, 30, 150 }, /* 7 */ - { 3, 19, 192, 3, SND_09_JET, 40, 74, 40, 220 }, /* 8 */ + { 3, 19, 192, 3, SND_09_JET, 40, 74, 40, 220 }, /* 8 */ { 3, 20, 190, 3, SND_09_JET, 40, 74, 25, 230 }, /* 9 */ { 2, 16, 135, 3, SND_09_JET, 35, 74, 10, 95 }, /* 10 */ { 2, 18, 240, 3, SND_09_JET, 40, 74, 35, 170 }, /* 11 */ diff --git a/table/sprites.h b/table/sprites.h index 8ee56c20d..663fbdd28 100644 --- a/table/sprites.h +++ b/table/sprites.h @@ -51,7 +51,7 @@ enum Sprites { SPR_CANALS_BASE = 5382, SPR_SLOPES_BASE = SPR_CANALS_BASE + 70, SPR_AUTORAIL_BASE = SPR_SLOPES_BASE + 78, - SPR_OPENTTD_BASE = SPR_AUTORAIL_BASE + 55, // can be lowered once autorail.grf is finalized + SPR_OPENTTD_BASE = SPR_AUTORAIL_BASE + 55, SPR_BLOT = SPR_OPENTTD_BASE + 29, // colored circle (mainly used as vehicle profit marker and for sever compatibility) @@ -963,7 +963,6 @@ typedef enum CursorSprites { SPR_CURSOR_EW_MAGLEV = 1273, SPR_CURSOR_NWSE_MAGLEV = 1274, - SPR_CURSOR_RAIL_DEPOT = 1296, SPR_CURSOR_RAIL_STATION = 1300, SPR_CURSOR_TUNNEL_RAIL = 2434, @@ -975,6 +974,8 @@ typedef enum CursorSprites { SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 6, SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 7, + + SPR_CURSOR_RAIL_DEPOT = 1296, SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 11, SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 12, @@ -1004,15 +1005,15 @@ enum AnimCursors { }; /** - * Bitmask setup. For the graphics system, 32 bits are used to define - * the sprite to be displayed. This variable contains various information:<p> - * <ul><li> SPRITE_WIDTH is the number of bits used for the actual sprite to be displayed. - * This always starts at bit 0.</li> - * <li> TRANSPARENT_BIT is the bit number which toggles sprite transparency</li> - * <li> RECOLOR_BIT toggles the recoloring system</li> - * <li> PALETTE_SPRITE_WIDTH and PALETTE_SPRITE_START determine the position and number of - * bits used for the recoloring process. For transparency, it must be 0x322.</li> - */ + * Bitmask setup. For the graphics system, 32 bits are used to define + * the sprite to be displayed. This variable contains various information:<p> + * <ul><li> SPRITE_WIDTH is the number of bits used for the actual sprite to be displayed. + * This always starts at bit 0.</li> + * <li> TRANSPARENT_BIT is the bit number which toggles sprite transparency</li> + * <li> RECOLOR_BIT toggles the recoloring system</li> + * <li> PALETTE_SPRITE_WIDTH and PALETTE_SPRITE_START determine the position and number of + * bits used for the recoloring process. For transparency, it must be 0x322.</li> + */ enum SpriteSetup { TRANSPARENT_BIT = 31, ///< toggles transparency in the sprite RECOLOR_BIT = 15, ///< toggles recoloring in the sprite @@ -1022,13 +1023,13 @@ enum SpriteSetup { }; /** - these masks change the colors of the palette for a sprite. - Apart from this bit, a sprite number is needed to define - the palette used for recoloring. This palette is stored - in the bits marked by PALETTE_SPRITE_MASK. - @note Do not modify this enum. Alter SpriteSetup instead - @see SpriteSetup -*/ + * these masks change the colors of the palette for a sprite. + * Apart from this bit, a sprite number is needed to define + * the palette used for recoloring. This palette is stored + * in the bits marked by PALETTE_SPRITE_MASK. + * @note Do not modify this enum. Alter SpriteSetup instead + * @see SpriteSetup + */ enum Modifiers { ///when a sprite is to be displayed transparently, this bit needs to be set. PALETTE_MODIFIER_TRANSPARENT = 1 << TRANSPARENT_BIT, diff --git a/terraform_gui.c b/terraform_gui.c index 4bb27a611..8b04caf2a 100644 --- a/terraform_gui.c +++ b/terraform_gui.c @@ -209,24 +209,23 @@ static void TerraformToolbWndProc(Window *w, WindowEvent *e) case WE_PAINT: DrawWindowWidgets(w); break; + case WE_CLICK: - if (e->click.widget >= 4) { - _terraform_button_proc[e->click.widget - 4](w); - } + if (e->click.widget >= 4) _terraform_button_proc[e->click.widget - 4](w); break; - case WE_KEYPRESS: - { - int i; + case WE_KEYPRESS: { + uint i; - for(i=0; i!=lengthof(_terraform_keycodes); i++) + for (i = 0; i != lengthof(_terraform_keycodes); i++) { if (e->keypress.keycode == _terraform_keycodes[i]) { e->keypress.cont = false; _terraform_button_proc[i](w); break; } - } + } break; + } case WE_PLACE_OBJ: _place_proc(e->place.tile); @@ -95,9 +95,11 @@ void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ... void InitTextMessage(void) { - int i; - for (i = 0; i < MAX_CHAT_MESSAGES; i++) + uint i; + + for (i = 0; i < MAX_CHAT_MESSAGES; i++) { _text_message_list[i].message[0] = '\0'; + } _textmessage_width = _textmessage_box_max_width; } @@ -142,10 +144,10 @@ void UndrawTextMessage(void) // Check if a message is expired every day void TextMessageDailyLoop(void) { - int i; + uint i; + for (i = 0; i < MAX_CHAT_MESSAGES; i++) { - if (_text_message_list[i].message[0] == '\0') - continue; + if (_text_message_list[i].message[0] == '\0') continue; if (_date > _text_message_list[i].end_date) { /* Move the remaining messages over the current message */ @@ -168,8 +170,7 @@ void DrawTextMessage(void) int i, j; bool has_message; - if (!_textmessage_dirty) - return; + if (!_textmessage_dirty) return; // First undraw if needed UndrawTextMessage(); @@ -180,13 +181,11 @@ void DrawTextMessage(void) /* Check if we have anything to draw at all */ has_message = false; for ( i = 0; i < MAX_CHAT_MESSAGES; i++) { - if (_text_message_list[i].message[0] == '\0') - break; + if (_text_message_list[i].message[0] == '\0') break; has_message = true; } - if (!has_message) - return; + if (!has_message) return; // Make a copy of the screen as it is before painting (for undraw) memcpy_pitch( @@ -200,8 +199,7 @@ void DrawTextMessage(void) j = 0; // Paint the messages for (i = MAX_CHAT_MESSAGES - 1; i >= 0; i--) { - if (_text_message_list[i].message[0] == '\0') - continue; + if (_text_message_list[i].message[0] == '\0') continue; j++; GfxFillRect(_textmessage_box_left, _screen.height-_textmessage_box_bottom-j*13-2, _textmessage_box_left+_textmessage_width - 1, _screen.height-_textmessage_box_bottom-j*13+10, /* black, but with some alpha */ 0x322 | USE_COLORTABLE); @@ -237,8 +235,7 @@ void AddTextEffect(StringID msg, int x, int y, uint16 duration) return; for (te = _text_effect_list; te->string_id != INVALID_STRING_ID; ) { - if (++te == endof(_text_effect_list)) - return; + if (++te == endof(_text_effect_list)) return; } te->string_id = msg; diff --git a/town_cmd.c b/town_cmd.c index ac02a9b85..d613bf78b 100644 --- a/town_cmd.c +++ b/town_cmd.c @@ -120,9 +120,9 @@ static void DrawTile_Town(TileInfo *ti) } /* Add a house on top of the ground? */ - if ((image = dcts->sprite_2) != 0) { - if (_display_opt & DO_TRANS_BUILDINGS) - MAKE_TRANSPARENT(image); + image = dcts->sprite_2; + if (image != 0) { + if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image); AddSortableSpriteToDraw(image, ti->x + dcts->subtile_x, @@ -132,14 +132,13 @@ static void DrawTile_Town(TileInfo *ti) dcts->dz, z); - if (_display_opt & DO_TRANS_BUILDINGS) - return; + if (_display_opt & DO_TRANS_BUILDINGS) return; } { - int proc; - if ((proc=dcts->proc-1) >= 0 ) - _town_draw_tile_procs[proc](ti); + int proc = dcts->proc - 1; + + if (proc >= 0) _town_draw_tile_procs[proc](ti); } } @@ -158,11 +157,9 @@ static uint GetSlopeTileh_Town(const TileInfo *ti) static void AnimateTile_Town(TileIndex tile) { int old; - int i; int a,b; - if (_tick_counter & 3) - return; + if (_tick_counter & 3) return; // If the house is not one with a lift anymore, then stop this animating. // Not exactly sure when this happens, but probably when a house changes. @@ -174,11 +171,13 @@ static void AnimateTile_Town(TileIndex tile) } if (!((old = _m[tile].m1) & 0x80)) { + int i; + _m[tile].m1 |= 0x80; do { - i = (Random()&7) - 1; - } while (i < 0 || i == 1 || i*6==old); + i = (Random() & 7) - 1; + } while (i < 0 || i == 1 || i * 6 == old); SB(_m[tile].m5, 0, 6, i); } @@ -204,8 +203,7 @@ static bool IsCloseToTown(TileIndex tile, uint dist) const Town* t; FOR_ALL_TOWNS(t) { - if (t->xy != 0 && DistanceManhattan(tile, t->xy) < dist) - return true; + if (t->xy != 0 && DistanceManhattan(tile, t->xy) < dist) return true; } return false; } @@ -248,9 +246,7 @@ uint32 GetWorldPopulation(void) const Town* t; pop = 0; - FOR_ALL_TOWNS(t) { - pop += t->population; - } + FOR_ALL_TOWNS(t) pop += t->population; return pop; } @@ -265,7 +261,7 @@ static void MakeSingleHouseBigger(TileIndex tile) _m[tile].m3 = _m[tile].m3 + 0x40; - if ( (_m[tile].m3 & 0xC0) == 0xC0) { + if ((_m[tile].m3 & 0xC0) == 0xC0) { ChangePopulation(GetTown(_m[tile].m2), _housetype_population[_m[tile].m4]); } MarkTileDirtyByTile(tile); @@ -294,9 +290,9 @@ static void TileLoop_Town(TileIndex tile) house = _m[tile].m4; if (_housetype_extra_flags[house] & 0x20 && !(_m[tile].m5 & 0x80) && - CHANCE16(1,2) && + CHANCE16(1, 2) && AddAnimatedTile(tile)) { - _m[tile].m5 = (_m[tile].m5 & 0x40)|0x80; + _m[tile].m5 = (_m[tile].m5 & 0x40) | 0x80; } t = GetTown(_m[tile].m2); @@ -323,7 +319,7 @@ static void TileLoop_Town(TileIndex tile) t->new_act_mail += moved; } - if (_house_more_flags[house]&8 && (t->flags12&1) && --t->time_until_rebuild == 0) { + if (_house_more_flags[house] & 8 && (t->flags12 & 1) && --t->time_until_rebuild == 0) { t->time_until_rebuild = GB(r, 16, 6) + 130; _current_player = OWNER_TOWN; @@ -376,12 +372,12 @@ static int32 ClearTile_Town(TileIndex tile, byte flags) static void GetAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac) { - int type = _m[tile].m4; + byte type = _m[tile].m4; ac[CT_PASSENGERS] = _housetype_cargo_passengers[type]; - ac[CT_MAIL] = _housetype_cargo_mail[type]; - ac[CT_GOODS] = _housetype_cargo_goods[type]; - ac[CT_FOOD] = _housetype_cargo_food[type]; + ac[CT_MAIL] = _housetype_cargo_mail[type]; + ac[CT_GOODS] = _housetype_cargo_goods[type]; + ac[CT_FOOD] = _housetype_cargo_food[type]; } static void GetTileDesc_Town(TileIndex tile, TileDesc *td) @@ -439,8 +435,7 @@ static void TownTickHandler(Town *t) void OnTick_Town(void) { - if (_game_mode == GM_EDITOR) - return; + if (_game_mode == GM_EDITOR) return; /* Make sure each town's tickhandler invocation frequency is about the * same - TOWN_GROWTH_FREQUENCY - independent on the number of towns. */ @@ -455,21 +450,21 @@ void OnTick_Town(void) t = GetTown(i); - if (t->xy != 0) - TownTickHandler(t); + if (t->xy != 0) TownTickHandler(t); } } static byte GetTownRoadMask(TileIndex tile) { byte b = GetRoadBitsByTile(tile); - byte r=0; - if (b&1) r|=10; - if (b&2) r|=5; - if (b&4) r|=9; - if (b&8) r|=6; - if (b&16) r|=3; - if (b&32) r|=12; + byte r = 0; + + if (b & 0x01) r |= 10; + if (b & 0x02) r |= 5; + if (b & 0x04) r |= 9; + if (b & 0x08) r |= 6; + if (b & 0x10) r |= 3; + if (b & 0x20) r |= 12; return r; } @@ -482,7 +477,7 @@ static bool IsRoadAllowedHere(TileIndex tile, int dir) // land at the edges. This is not ok. TILE_ASSERT(tile); - for(;;) { + for (;;) { // Check if there already is a road at this point? if (GetRoadBitsByTile(tile) == 0) { // No, try to build one in the direction. @@ -513,24 +508,22 @@ no_slope: if ((k = (dir&1)?0xC:0x9) != slope && (k^0xF) != slope) { uint32 r = Random(); - if (CHANCE16I(1,8, r) && !_generating_world) { + if (CHANCE16I(1, 8, r) && !_generating_world) { int32 res; - if (CHANCE16I(1,16,r)) + if (CHANCE16I(1, 16, r)) { res = DoCommandByTile(tile, slope, 0, DC_EXEC | DC_AUTO | DC_NO_WATER, CMD_TERRAFORM_LAND); - else + } else { res = DoCommandByTile(tile, slope^0xF, 1, DC_EXEC | DC_AUTO | DC_NO_WATER, CMD_TERRAFORM_LAND); + } if (res == CMD_ERROR && CHANCE16I(1,3,r)) // We can consider building on the slope, though. goto no_slope; } return false; } - - /* Can somebody explain for what this is needed? :s */ - // tile = TILE_ADD(tile, _roadblock_tileadd[dir]); return true; } } @@ -556,8 +549,7 @@ static void LevelTownLand(TileIndex tile) // Don't terraform if land is plain or if there's a house there. FindLandscapeHeightByTile(&ti, tile); - if (ti.tileh == 0 || ti.type == MP_HOUSE) - return; + if (ti.tileh == 0 || ti.type == MP_HOUSE) return; // First try up, then down if (!TerraformTownTile(tile, ~ti.tileh & 0xF, 1)) { @@ -587,8 +579,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, uint mask, int block, Town *t1) LevelTownLand(tile); // Is a road allowed here? - if (!IsRoadAllowedHere(tile, block)) - return; + if (!IsRoadAllowedHere(tile, block)) return; // Randomize new road block numbers a = block; @@ -602,8 +593,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, uint mask, int block, Town *t1) if (!IsRoadAllowedHere(TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[a])), a)) { // A road is not allowed to continue the randomized road, // return if the road we're trying to build is curved. - if ( a != (b^2)) - return; + if (a != (b ^ 2)) return; // Return if neither side of the new road is a house if (!IsTileType(TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[a + 1])), MP_HOUSE) && @@ -619,7 +609,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, uint mask, int block, Town *t1) // Continue building on a partial road. // Always OK. _grow_town_result = 0; - rcmd = 1 << (block^2); + rcmd = 1 << (block ^ 2); } else { // Reached a tunnel? Then continue at the other side of it. @@ -630,25 +620,22 @@ static void GrowTownInTile(TileIndex *tile_ptr, uint mask, int block, Town *t1) } // For any other kind of tunnel/bridge, bail out. - if (IsTileType(tile, MP_TUNNELBRIDGE)) - return; + if (IsTileType(tile, MP_TUNNELBRIDGE)) return; // Possibly extend the road in a direction. // Randomize a direction and if it has a road, bail out. i = GB(Random(), 0, 2); - if (HASBIT(mask, i)) - return; + if (HASBIT(mask, i)) return; // This is the tile we will reach if we extend to this direction. tmptile = TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[i])); // Don't do it if it reaches to water. - if (IS_WATER_TILE(tmptile)) - return; + if (IS_WATER_TILE(tmptile)) return; // Build a house at the edge. 60% chance or // always ok if no road allowed. - if (!IsRoadAllowedHere(tmptile, i) || CHANCE16(6,10)) { + if (!IsRoadAllowedHere(tmptile, i) || CHANCE16(6, 10)) { // But not if there already is a house there. if (!IsTileType(tmptile, MP_HOUSE)) { // Level the land if possible @@ -656,8 +643,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, uint mask, int block, Town *t1) // And build a house. // Set result to -1 if we managed to build it. - if (BuildTownHouse(t1, tmptile)) - _grow_town_result = -1; + if (BuildTownHouse(t1, tmptile)) _grow_town_result = -1; } return; } @@ -669,8 +655,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, uint mask, int block, Town *t1) FindLandscapeHeightByTile(&ti, tile); // Return if a water tile - if (ti.type == MP_WATER && ti.map5==0) - return; + if (ti.type == MP_WATER && ti.map5 == 0) return; // Determine direction of slope, // and build a road if not a special slope. @@ -823,7 +808,7 @@ bool GrowTown(Town *t) FindLandscapeHeightByTile(&ti, tile); // Only work with plain land that not already has a house with map5=0 - if (ti.tileh == 0 && !(ti.type==MP_HOUSE && ti.map5==0)) { + if (ti.tileh == 0 && (ti.type != MP_HOUSE || ti.map5 != 0)) { if (DoCommandByTile(tile, 0, 0, DC_AUTO, CMD_LANDSCAPE_CLEAR) != CMD_ERROR) { DoCommandByTile(tile, GenRandomRoadBits(), t->index, DC_EXEC | DC_AUTO, CMD_BUILD_ROAD); _current_player = old_player; @@ -906,8 +891,7 @@ restart: GetString(buf1, townnametype); // Check size and width - if (strlen(buf1) >= 31 || GetStringWidth(buf1) > 130) - continue; + if (strlen(buf1) >= 31 || GetStringWidth(buf1) > 130) continue; FOR_ALL_TOWNS(t2) { if (t2->xy != 0) { @@ -916,8 +900,7 @@ restart: SetDParam(0, t2->index); GetString(buf2, STR_TOWN); if (strcmp(buf1, buf2) == 0) { - if (tries-- < 0) - return false; + if (tries-- < 0) return false; goto restart; } } @@ -1583,8 +1566,7 @@ static bool DoBuildStatueOfCompany(TileIndex tile) int32 r; FindLandscapeHeightByTile(&ti, tile); - if (ti.tileh != 0) - return false; + if (ti.tileh != 0) return false; if (ti.type != MP_HOUSE && ti.type != MP_CLEAR && ti.type != MP_TREES) return false; @@ -1634,8 +1616,7 @@ static void TownActionBuildStatue(Town *t, int action) SETBIT(t->statues, _current_player); for (p = _statue_tiles; p != endof(_statue_tiles); ++p) { - if (DoBuildStatueOfCompany(tile)) - return; + if (DoBuildStatueOfCompany(tile)) return; tile = TILE_ADD(tile, ToTileIndexDiff(*p)); } } @@ -1873,8 +1854,11 @@ void ChangeTownRating(Town *t, int add, int max) int rating; // if magic_bulldozer cheat is active, town doesn't penaltize for removing stuff - if (t == NULL || _current_player >= MAX_PLAYERS || (_cheats.magic_bulldozer.value && add < 0) ) + if (t == NULL || + _current_player >= MAX_PLAYERS || + (_cheats.magic_bulldozer.value && add < 0)) { return; + } SETBIT(t->have_ratings, _current_player); diff --git a/town_gui.c b/town_gui.c index 931bc7bd6..5e742a59a 100644 --- a/town_gui.c +++ b/town_gui.c @@ -45,7 +45,8 @@ uint GetMaskOfTownActions(int *nump, PlayerID pid, const Town *t) uint buttons = 0; if (pid != OWNER_SPECTATOR) { - int i; + uint i; + // bribe option enabled? if (_patches.bribe) { // if unwanted, disable everything. @@ -81,11 +82,12 @@ uint GetMaskOfTownActions(int *nump, PlayerID pid, const Town *t) static int GetNthSetBit(uint32 bits, int n) { int i = 0; + if (n >= 0) { do { - if (bits&1 && --n < 0) return i; + if (bits & 1 && --n < 0) return i; i++; - } while (bits>>=1); + } while (bits >>= 1); } return -1; } @@ -119,7 +121,7 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e) // Draw list of players y = 25; FOR_ALL_PLAYERS(p) { - if (p->is_active && (HASBIT(t->have_ratings, p->index) || t->exclusivity==p->index)) { + if (p->is_active && (HASBIT(t->have_ratings, p->index) || t->exclusivity == p->index)) { DrawPlayerIcon(p->index, 2, y); SetDParam(0, p->name_1); @@ -138,10 +140,10 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e) SetDParam(4, str); if (t->exclusivity == p->index) // red icon for player with exclusive rights - DrawSprite((SPR_BLOT) | PALETTE_TO_RED, 18, y); + DrawSprite(SPR_BLOT | PALETTE_TO_RED, 18, y); DrawString(28, y, STR_2024, 0); - y+=10; + y += 10; } } } @@ -153,11 +155,10 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e) if (--pos < 0) { DrawString(2, y, STR_2045_ACTIONS_AVAILABLE, 0); - y+=10; + y += 10; } - for(i=0; buttons; i++,buttons>>=1) { - if (pos <= -5) - break; + for (i = 0; buttons; i++, buttons >>= 1) { + if (pos <= -5) break; if (buttons&1 && --pos < 0) { DrawString(3, y, STR_2046_SMALL_ADVERTISING_CAMPAIGN + i, 6); @@ -167,8 +168,9 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e) } { - int i; - if ((i=WP(w,def_d).data_1) != -1) { + int i = WP(w,def_d).data_1; + + if (i != -1) { SetDParam(1, (_price.build_industry >> 8) * _town_action_costs[i]); SetDParam(0, STR_2046_SMALL_ADVERTISING_CAMPAIGN + i); DrawStringMultiLine(2, 159, STR_204D_INITIATE_A_SMALL_LOCAL + i, 313); @@ -182,8 +184,8 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e) case 3: { /* listbox */ const Town *t = GetTown(w->window_number); int y = (e->click.pt.y - 0x6B) / 10; - if (!IS_INT_INSIDE(y, 0, 5)) - return; + + if (!IS_INT_INSIDE(y, 0, 5)) return; y = GetNthSetBit(GetMaskOfTownActions(NULL, _local_player, t), y + w->vscroll.pos - 1); if (y >= 0) { @@ -216,10 +218,9 @@ static const WindowDesc _town_authority_desc = { static void ShowTownAuthorityWindow(uint town) { - Window *w; + Window* w = AllocateWindowDescFront(&_town_authority_desc, town); - w = AllocateWindowDescFront(&_town_authority_desc, town); - if (w) { + if (w != NULL) { w->vscroll.cap = 5; WP(w,def_d).data_1 = -1; } @@ -229,7 +230,7 @@ static void TownViewWndProc(Window *w, WindowEvent *e) { Town *t = GetTown(w->window_number); - switch(e->event) { + switch (e->event) { case WE_PAINT: // disable renaming town in network games if you are not the server if (_networking && !_network_server) SETBIT(w->disabled_state, 8); @@ -239,37 +240,41 @@ static void TownViewWndProc(Window *w, WindowEvent *e) SetDParam(0, t->population); SetDParam(1, t->num_houses); - DrawString(2,107,STR_2006_POPULATION,0); + DrawString(2, 107, STR_2006_POPULATION, 0); SetDParam(0, t->act_pass); SetDParam(1, t->max_pass); - DrawString(2,117,STR_200D_PASSENGERS_LAST_MONTH_MAX,0); + DrawString(2, 117, STR_200D_PASSENGERS_LAST_MONTH_MAX, 0); SetDParam(0, t->act_mail); SetDParam(1, t->max_mail); - DrawString(2,127,STR_200E_MAIL_LAST_MONTH_MAX,0); + DrawString(2, 127, STR_200E_MAIL_LAST_MONTH_MAX, 0); DrawWindowViewport(w); break; case WE_CLICK: - switch(e->click.widget) { - case 6: /* scroll to location */ - ScrollMainWindowToTile(t->xy); - break; - case 7: /* town authority */ - ShowTownAuthorityWindow(w->window_number); - break; - case 8: /* rename */ - SetDParam(0, w->window_number); - ShowQueryString(STR_TOWN, STR_2007_RENAME_TOWN, 31, 130, w->window_class, w->window_number); - break; - case 9: /* expand town */ - ExpandTown(t); - break; - case 10: /* delete town */ - DeleteTown(t); - break; + switch (e->click.widget) { + case 6: /* scroll to location */ + ScrollMainWindowToTile(t->xy); + break; + + case 7: /* town authority */ + ShowTownAuthorityWindow(w->window_number); + break; + + case 8: /* rename */ + SetDParam(0, w->window_number); + ShowQueryString(STR_TOWN, STR_2007_RENAME_TOWN, 31, 130, w->window_class, w->window_number); + break; + + case 9: /* expand town */ + ExpandTown(t); + break; + + case 10: /* delete town */ + DeleteTown(t); + break; } break; @@ -331,7 +336,6 @@ static const WindowDesc _town_view_scen_desc = { void ShowTownViewWindow(uint town) { Window *w; - Town *t; if (_game_mode != GM_EDITOR) { w = AllocateWindowDescFront(&_town_view_desc, town); @@ -339,10 +343,9 @@ void ShowTownViewWindow(uint town) w = AllocateWindowDescFront(&_town_view_scen_desc, town); } - if (w) { + if (w != NULL) { w->flags4 |= WF_DISABLE_VP_SCROLL; - t = GetTown(w->window_number); - AssignWindowViewport(w, 3, 17, 0xFE, 0x56, t->xy, 1); + AssignWindowViewport(w, 3, 17, 0xFE, 0x56, GetTown(town)->xy, 1); } } @@ -403,16 +406,16 @@ static int CDECL TownPopSorter(const void *a, const void *b) static void MakeSortedTownList(void) { const Town* t; - int n = 0; + uint n = 0; /* Create array for sorting */ _town_sort = realloc(_town_sort, GetTownPoolSize() * sizeof(_town_sort[0])); if (_town_sort == NULL) error("Could not allocate memory for the town-sorting-list"); - FOR_ALL_TOWNS(t) - if (t->xy) - _town_sort[n++] = t->index; + FOR_ALL_TOWNS(t) { + if (t->xy != 0) _town_sort[n++] = t->index; + } _num_town_sort = n; @@ -425,9 +428,8 @@ static void MakeSortedTownList(void) static void TownDirectoryWndProc(Window *w, WindowEvent *e) { - switch(e->event) { + switch (e->event) { case WE_PAINT: { - if (_town_sort_dirty) { _town_sort_dirty = false; MakeSortedTownList(); @@ -516,10 +518,9 @@ static const WindowDesc _town_directory_desc = { void ShowTownDirectory(void) { - Window *w; + Window* w = AllocateWindowDescFront(&_town_directory_desc, 0); - w = AllocateWindowDescFront(&_town_directory_desc, 0); - if (w) { + if (w != NULL) { w->vscroll.cap = 16; w->resize.step_height = 10; w->resize.height = w->height - 10 * 6; // minimum of 10 items in the list, each item 10 high diff --git a/train_cmd.c b/train_cmd.c index 68c72fa89..5a6fc9feb 100644 --- a/train_cmd.c +++ b/train_cmd.c @@ -38,7 +38,8 @@ static const byte _state_dir_table[4] = { 0x20, 8, 0x10, 4 }; * the consist changes. * @param v First vehicle of the consist. */ -void TrainCargoChanged(Vehicle *v) { +void TrainCargoChanged(Vehicle* v) +{ Vehicle *u; uint16 weight = 0; @@ -75,7 +76,8 @@ void TrainCargoChanged(Vehicle *v) { * Note: this needs to be called too for 'wagon chains' (in the depot, without an engine) * @param v First vehicle of the chain. */ -void TrainConsistChanged(Vehicle *v) { +void TrainConsistChanged(Vehicle* v) +{ const RailVehicleInfo *rvi_v; Vehicle *u; uint16 max_speed = 0xFFFF; @@ -383,8 +385,7 @@ int GetTrainImage(const Vehicle *v, byte direction) base = _engine_sprite_base[img] + ((direction + _engine_sprite_add[img]) & _engine_sprite_and[img]); - if (v->cargo_count >= (v->cargo_cap >> 1)) - base += _wagon_full_adder[img]; + if (v->cargo_count >= v->cargo_cap / 2) base += _wagon_full_adder[img]; return base; } @@ -431,13 +432,11 @@ static uint CountArticulatedParts(const RailVehicleInfo *rvi, EngineID engine_ty uint16 callback; uint i; - if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) - return 0; + if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) return 0; for (i = 1; i < 10; i++) { callback = GetCallBackResult(CBID_ARTIC_ENGINE + (i << 8), engine_type, NULL); - if (callback == CALLBACK_FAILED || callback == 0xFF) - break; + if (callback == CALLBACK_FAILED || callback == 0xFF) break; } return i - 1; @@ -502,10 +501,7 @@ static void AddArticulatedParts(const RailVehicleInfo *rvi, Vehicle **vl) static int32 CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags) { int32 value; - Vehicle *v; const RailVehicleInfo *rvi; - const Engine *e; - int x,y; uint num_vehicles; SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); @@ -517,17 +513,19 @@ static int32 CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags) if (!(flags & DC_QUERY_COST)) { Vehicle *vl[11]; // Allow for wagon and upto 10 artic parts. + Vehicle* v; + int x; + int y; if (!AllocateVehicles(vl, num_vehicles)) return_cmd_error(STR_00E1_TOO_MANY_VEHICLES_IN_GAME); if (flags & DC_EXEC) { - byte img = rvi->image_index; Vehicle *u, *w; uint dir; v = vl[0]; - v->spritenum = img; + v->spritenum = rvi->image_index; u = NULL; @@ -568,8 +566,7 @@ static int32 CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags) v->value = value; // v->day_counter = 0; - e = GetEngine(engine); - v->u.rail.railtype = e->railtype; + v->u.rail.railtype = GetEngine(engine)->railtype; v->build_year = _cur_year; v->type = VEH_Train; @@ -861,8 +858,8 @@ static Vehicle *FindGoodVehiclePos(const Vehicle *src) /** Move a rail vehicle around inside the depot. * @param x,y unused * @param p1 various bitstuffed elements - * - p1 (bit 0 - 15) source vehicle index (p1 & 0xFFFF) - * - p1 (bit 16 - 31) what wagon to put the source wagon AFTER (p1 & 0xFFFF0000) XXX - 0xFFFF0000 to make a new line + * - p1 (bit 0 - 15) source vehicle index + * - p1 (bit 16 - 31) what wagon to put the source wagon AFTER, XXX - INVALID_VEHICLE to make a new line * @param p2 (bit 0) move all vehicles following the source vehicle */ int32 CmdMoveRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) @@ -898,7 +895,7 @@ int32 CmdMoveRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (src == dst) return 0; /* the player must be the owner */ - if (!CheckOwnership(src->owner) || (dst!=NULL && !CheckOwnership(dst->owner))) + if (!CheckOwnership(src->owner) || (dst != NULL && !CheckOwnership(dst->owner))) return CMD_ERROR; /* locate the head of the two chains */ @@ -1293,7 +1290,8 @@ static void UpdateVarsAfterSwap(Vehicle *v) EndVehicleMove(v); } -static void SetLastSpeed(Vehicle *v, int spd) { +static void SetLastSpeed(Vehicle* v, int spd) +{ int old = v->u.rail.last_speed; if (spd != old) { v->u.rail.last_speed = spd; @@ -1377,24 +1375,18 @@ static void ReverseTrainSwapVeh(Vehicle *v, int l, int r) /* Check if the vehicle is a train and is on the tile we are testing */ static void *TestTrainOnCrossing(Vehicle *v, void *data) { - if (v->tile != *(const TileIndex*)data || v->type != VEH_Train) - return NULL; - + if (v->tile != *(const TileIndex*)data || v->type != VEH_Train) return NULL; return v; } static void DisableTrainCrossing(TileIndex tile) { - /* Test if we have a rail/road-crossing */ - if (IsTileType(tile, MP_STREET) && IsLevelCrossing(tile)) { - /* Check if there is a train on the tile itself */ - if (VehicleFromPos(tile, &tile, TestTrainOnCrossing) == NULL) { - /* If light is on, switch light off */ - if (GB(_m[tile].m5, 2, 1) != 0) { - SB(_m[tile].m5, 2, 1, 0); - MarkTileDirtyByTile(tile); - } - } + if (IsTileType(tile, MP_STREET) && + IsLevelCrossing(tile) && + VehicleFromPos(tile, &tile, TestTrainOnCrossing) == NULL && // empty? + GB(_m[tile].m5, 2, 1) != 0) { // Lights on? + SB(_m[tile].m5, 2, 1, 0); // Switch lights off + MarkTileDirtyByTile(tile); } } @@ -1406,34 +1398,35 @@ static void DisableTrainCrossing(TileIndex tile) */ static void AdvanceWagons(Vehicle *v, bool before) { - Vehicle *base, *first, *last, *tempnext; - int i, length; - int differential; + Vehicle* base; + Vehicle* first; + int length; base = v; first = base->next; length = CountVehiclesInChain(v); while (length > 2) { + Vehicle* last; + int differential; + int i; + // find pairwise matching wagon // start<>end, start+1<>end-1, ... */ last = first; - for (i = length - 3; i; i--) { - last = last->next; - } + for (i = length - 3; i > 0; i--) last = last->next; differential = last->u.rail.cached_veh_length - base->u.rail.cached_veh_length; - if (before) - differential *= -1; + if (before) differential *= -1; if (differential > 0) { + Vehicle* tempnext; + // disconnect last car to make sure only this subset moves tempnext = last->next; last->next = NULL; - for (i = 0; i < differential; i++) { - TrainController(first); - } + for (i = 0; i < differential; i++) TrainController(first); last->next = tempnext; } @@ -1450,15 +1443,13 @@ static TileIndex GetVehicleTileOutOfTunnel(const Vehicle* v, bool reverse) byte direction = (!reverse) ? DirToDiagdir(v->direction) : ReverseDiagdir(v->direction >> 1); TileIndexDiff delta = TileOffsByDir(direction); - if (v->u.rail.track != 0x40) - return v->tile; + if (v->u.rail.track != 0x40) return v->tile; for (tile = v->tile;; tile += delta) { if (IsTunnelTile(tile) && GB(_m[tile].m5, 0, 2) != direction && GetTileZ(tile) == v->z_pos) break; } return tile; - } static void ReverseTrainDirection(Vehicle *v) @@ -1491,7 +1482,7 @@ static void ReverseTrainDirection(Vehicle *v) return; } - // we found a way out of the pbs block + // we found a way out of the pbs block if (NPFGetFlag(&ftd.node, NPF_FLAG_PBS_EXIT)) { if (NPFGetFlag(&ftd.node, NPF_FLAG_PBS_BLOCKED)) { CLRBIT(v->u.rail.flags, VRF_REVERSING); @@ -1610,8 +1601,7 @@ int32 CmdForceTrainProceed(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (v->type != VEH_Train || !CheckOwnership(v->owner)) return CMD_ERROR; - if (flags & DC_EXEC) - v->u.rail.force_proceed = 0x50; + if (flags & DC_EXEC) v->u.rail.force_proceed = 0x50; return 0; } @@ -1676,8 +1666,7 @@ int32 CmdRefitRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) }; if (amount != 0) { - if (new_cid != v->cargo_type) - cost += (_price.build_railvehicle >> 8); + if (new_cid != v->cargo_type) cost += _price.build_railvehicle >> 8; num += amount; if (flags & DC_EXEC) { v->cargo_count = 0; @@ -1700,8 +1689,8 @@ typedef struct TrainFindDepotData { TileIndex tile; PlayerID owner; /** - * true if reversing is necesarry for the train to get to this depot This - * value is unused when new depot finding and NPF are both disabled + * true if reversing is necessary for the train to get to this depot + * This value is unused when new depot finding and NPF are both disabled */ bool reverse; } TrainFindDepotData; @@ -1763,13 +1752,13 @@ static TrainFindDepotData FindClosestTrainDepot(Vehicle *v) } else { // search in the forward direction first. i = v->direction >> 1; - if (!(v->direction & 1) && v->u.rail.track != _state_dir_table[i]) { i = (i - 1) & 3; } + if (!(v->direction & 1) && v->u.rail.track != _state_dir_table[i]) i = (i - 1) & 3; NewTrainPathfind(tile, 0, i, (NTPEnumProc*)NtpCallbFindDepot, &tfdd); if (tfdd.best_length == (uint)-1){ tfdd.reverse = true; // search in backwards direction i = (v->direction^4) >> 1; - if (!(v->direction & 1) && v->u.rail.track != _state_dir_table[i]) { i = (i - 1) & 3; } + if (!(v->direction & 1) && v->u.rail.track != _state_dir_table[i]) i = (i - 1) & 3; NewTrainPathfind(tile, 0, i, (NTPEnumProc*)NtpCallbFindDepot, &tfdd); } } @@ -1880,8 +1869,10 @@ static void HandleLocomotiveSmokeCloud(const Vehicle* v) if ((RailVehInfo(engtype)->flags & RVI_WAGON && effect_type == 0) || disable_effect || GetEngine(engtype)->railtype > RAILTYPE_RAIL || - (v->vehstatus & VS_HIDDEN) || (v->u.rail.track & 0xC0)) + v->vehstatus & VS_HIDDEN || + v->u.rail.track & 0xC0) { continue; + } // No smoke in depots or tunnels if (IsTileDepotType(v->tile, TRANSPORT_RAIL) || IsTunnelTile(v->tile)) @@ -1952,9 +1943,9 @@ static bool CheckTrainStayInDepot(Vehicle *v) Vehicle *u; // bail out if not all wagons are in the same depot or not in a depot at all - for (u = v; u != NULL; u = u->next) - if (u->u.rail.track != 0x80 || u->tile != v->tile) - return false; + for (u = v; u != NULL; u = u->next) { + if (u->u.rail.track != 0x80 || u->tile != v->tile) return false; + } if (v->u.rail.force_proceed == 0) { Trackdir trackdir = GetVehicleTrackdir(v); @@ -1970,8 +1961,7 @@ static bool CheckTrainStayInDepot(Vehicle *v) NPFFindStationOrTileData fstd; NPFFoundTargetData ftd; - if (PBSTileUnavail(v->tile) & (1 << trackdir)) - return true; + if (PBSTileUnavail(v->tile) & (1 << trackdir)) return true; NPFFillWithOrderData(&fstd, v); @@ -1980,9 +1970,9 @@ static bool CheckTrainStayInDepot(Vehicle *v) // we found a way out of the pbs block if (NPFGetFlag(&ftd.node, NPF_FLAG_PBS_EXIT)) { - if (NPFGetFlag(&ftd.node, NPF_FLAG_PBS_BLOCKED) || NPFGetFlag(&ftd.node, NPF_FLAG_PBS_RED)) + if (NPFGetFlag(&ftd.node, NPF_FLAG_PBS_BLOCKED) || NPFGetFlag(&ftd.node, NPF_FLAG_PBS_RED)) { return true; - else { + } else { v->u.rail.pbs_end_tile = ftd.node.tile; v->u.rail.pbs_end_trackdir = ftd.node.direction; goto green; @@ -1990,7 +1980,6 @@ static bool CheckTrainStayInDepot(Vehicle *v) } } - if (UpdateSignalsOnSegment(v->tile, v->direction)) { InvalidateWindowClasses(WC_TRAINS_LIST); return true; @@ -2002,8 +1991,7 @@ green: TrainPlayLeaveStationSound(v); v->u.rail.track = 1; - if (v->direction & 2) - v->u.rail.track = 2; + if (v->direction & 2) v->u.rail.track = 2; v->vehstatus &= ~VS_HIDDEN; v->cur_speed = 0; @@ -2057,12 +2045,12 @@ static bool NtpCallbFindStation(TileIndex tile, TrainTrackFollowerData *ttfd, in static void FillWithStationData(TrainTrackFollowerData* fd, const Vehicle* v) { - fd->dest_coords = v->dest_tile; - if (v->current_order.type == OT_GOTO_STATION) - fd->station_index = v->current_order.station; - else - fd->station_index = INVALID_STATION; - + fd->dest_coords = v->dest_tile; + if (v->current_order.type == OT_GOTO_STATION) { + fd->station_index = v->current_order.station; + } else { + fd->station_index = INVALID_STATION; + } } static const byte _initial_tile_subcoord[6][4][3] = { @@ -2095,10 +2083,10 @@ static const byte _pick_track_table[6] = {1, 3, 2, 2, 0, 0}; #if !defined(_MSC_VER) unsigned int _rdtsc() { - unsigned int high, low; + unsigned int high, low; - __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high)); - return low; + __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high)); + return low; } #else #ifndef _M_AMD64 @@ -2332,8 +2320,7 @@ static bool ProcessTrainOrder(Vehicle *v) } // Get the current order - if (v->cur_order_index >= v->num_orders) - v->cur_order_index = 0; + if (v->cur_order_index >= v->num_orders) v->cur_order_index = 0; order = GetVehicleOrder(v, v->cur_order_index); @@ -2407,27 +2394,22 @@ static void MarkTrainDirty(Vehicle *v) do { v->cur_image = GetTrainImage(v, v->direction); MarkAllViewportsDirty(v->left_coord, v->top_coord, v->right_coord + 1, v->bottom_coord + 1); - } while ( (v=v->next) != NULL); + } while ((v = v->next) != NULL); } static void HandleTrainLoading(Vehicle *v, bool mode) { - if (v->current_order.type == OT_NOTHING) - return; + if (v->current_order.type == OT_NOTHING) return; if (v->current_order.type != OT_DUMMY) { - if (v->current_order.type != OT_LOADING) - return; - - if (mode) - return; + if (v->current_order.type != OT_LOADING) return; + if (mode) return; // don't mark the train as lost if we're loading on the final station. if (v->current_order.flags & OF_NON_STOP) v->u.rail.days_since_order_progr = 0; - if (--v->load_unload_time_rem) - return; + if (--v->load_unload_time_rem) return; if (v->current_order.flags & OF_FULL_LOAD && CanFillVehicle(v)) { v->u.rail.days_since_order_progr = 0; /* Prevent a train lost message for full loading trains */ @@ -2451,8 +2433,7 @@ static void HandleTrainLoading(Vehicle *v, bool mode) v->current_order.flags = 0; // If this was not the final order, don't remove it from the list. - if (!(b.flags & OF_NON_STOP)) - return; + if (!(b.flags & OF_NON_STOP)) return; } } @@ -2467,15 +2448,17 @@ static int UpdateTrainSpeed(Vehicle *v) uint accel; if (v->vehstatus & VS_STOPPED || HASBIT(v->u.rail.flags, VRF_REVERSING)) { - if (_patches.realistic_acceleration) + if (_patches.realistic_acceleration) { accel = GetTrainAcceleration(v, AM_BRAKE) * 2; - else + } else { accel = v->acceleration * -2; + } } else { - if (_patches.realistic_acceleration) + if (_patches.realistic_acceleration) { accel = GetTrainAcceleration(v, AM_ACCEL); - else + } else { accel = v->acceleration; + } } spd = v->subspeed + accel * 2; @@ -2682,8 +2665,7 @@ static void AffectSpeedByDirChange(Vehicle *v, byte new_dir) static void AffectSpeedByZChange(Vehicle *v, byte old_z) { const RailtypeSlowdownParams *rsp; - if (old_z == v->z_pos || _patches.realistic_acceleration) - return; + if (old_z == v->z_pos || _patches.realistic_acceleration) return; rsp = &_railtype_slowdown[v->u.rail.railtype]; @@ -2691,8 +2673,7 @@ static void AffectSpeedByZChange(Vehicle *v, byte old_z) v->cur_speed -= (v->cur_speed * rsp->z_up >> 8); } else { uint16 spd = v->cur_speed + rsp->z_down; - if (spd <= v->max_speed) - v->cur_speed = spd; + if (spd <= v->max_speed) v->cur_speed = spd; } } @@ -2703,9 +2684,8 @@ static const byte _otherside_signal_directions[14] = { static void TrainMovedChangeSignals(TileIndex tile, int dir) { - int i; if (IsTileType(tile, MP_RAILWAY) && (_m[tile].m5 & 0xC0) == 0x40) { - i = FindFirstBit2x64((_m[tile].m5+(_m[tile].m5<<8)) & _reachable_tracks[dir]); + uint i = FindFirstBit2x64((_m[tile].m5 + (_m[tile].m5 << 8)) & _reachable_tracks[dir]); UpdateSignalsOnSegment(tile, _otherside_signal_directions[i]); } } @@ -2770,11 +2750,10 @@ static void CheckTrainCollision(Vehicle *v) TrainCollideChecker tcc; Vehicle *coll; Vehicle *realcoll; - int num; + uint num; /* can't collide in depot */ - if (v->u.rail.track == 0x80) - return; + if (v->u.rail.track == 0x80) return; assert(v->u.rail.track == 0x40 || TileVirtXY(v->x_pos, v->y_pos) == v->tile); @@ -2783,9 +2762,7 @@ static void CheckTrainCollision(Vehicle *v) /* find colliding vehicle */ realcoll = VehicleFromPos(TileVirtXY(v->x_pos, v->y_pos), &tcc, FindTrainCollideEnum); - if (realcoll == NULL) - return; - + if (realcoll == NULL) return; coll = GetFirstVehicleInChain(realcoll); @@ -2801,12 +2778,9 @@ static void CheckTrainCollision(Vehicle *v) num += 2 + CountPassengersInTrain(coll); SetVehicleCrashed(v); - if (coll->subtype == TS_Front_Engine) - SetVehicleCrashed(coll); - + if (coll->subtype == TS_Front_Engine) SetVehicleCrashed(coll); SetDParam(0, num); - AddNewsItem(STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL, NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_VEHICLE, NT_ACCIDENT, 0), v->index, @@ -3052,9 +3026,7 @@ green_light: invalid_rail: /* We've reached end of line?? */ - if (prev != NULL) { - error("!Disconnecting train"); - } + if (prev != NULL) error("!Disconnecting train"); goto reverse_train_direction; red_light: { @@ -3091,7 +3063,6 @@ reverse_train_direction: v->cur_speed = 0; v->subspeed = 0; ReverseTrainDirection(v); - } extern TileIndex CheckTunnelBusy(TileIndex tile, uint *length); @@ -3188,7 +3159,7 @@ static void HandleCrashedTrain(Vehicle *v) uint32 r; Vehicle *u; - if ( (state == 4) && (v->u.rail.track != 0x40) ) { + if (state == 4 && v->u.rail.track != 0x40) { CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); } @@ -3272,13 +3243,8 @@ static bool TrainCheckIfLineEnds(Vehicle *v) v->vehstatus &= ~VS_TRAIN_SLOWING; } - // exit if inside a tunnel - if (v->u.rail.track & 0x40) - return true; - - // exit if inside a depot - if (v->u.rail.track & 0x80) - return true; + if (v->u.rail.track & 0x40) return true; // exit if inside a tunnel + if (v->u.rail.track & 0x80) return true; // exit if inside a depot tile = v->tile; @@ -3312,7 +3278,7 @@ static bool TrainCheckIfLineEnds(Vehicle *v) x = v->x_pos & 0xF; y = v->y_pos & 0xF; - switch(v->direction) { + switch (v->direction) { case 0: x = (~x) + (~y) + 24; break; @@ -3494,8 +3460,7 @@ void TrainEnterDepot(Vehicle *v, TileIndex tile) { SetSignalsOnBothDir(tile, _depot_track_ind[GB(_m[tile].m5, 0, 2)]); - if (v->subtype != TS_Front_Engine) - v = GetFirstVehicleInChain(v); + if (v->subtype != TS_Front_Engine) v = GetFirstVehicleInChain(v); VehicleServiceInDepot(v); @@ -3539,23 +3504,12 @@ static void CheckIfTrainNeedsService(Vehicle *v) const Depot* depot; TrainFindDepotData tfdd; - if (PBSTileReserved(v->tile) & v->u.rail.track) - return; - - if (v->u.rail.pbs_status == PBS_STAT_HAS_PATH) - return; - - if (_patches.servint_trains == 0) - return; - - if (!VehicleNeedsService(v)) - return; - - if (v->vehstatus & VS_STOPPED) - return; - - if (_patches.gotodepot && VehicleHasDepotOrders(v)) - return; + if (PBSTileReserved(v->tile) & v->u.rail.track) return; + if (v->u.rail.pbs_status == PBS_STAT_HAS_PATH) return; + if (_patches.servint_trains == 0) return; + if (!VehicleNeedsService(v)) return; + if (v->vehstatus & VS_STOPPED) return; + if (_patches.gotodepot && VehicleHasDepotOrders(v)) return; // Don't interfere with a depot visit scheduled by the user, or a // depot visit by the order list. @@ -3632,8 +3586,9 @@ void OnNewDay_Train(Vehicle *v) /* update destination */ if (v->current_order.type == OT_GOTO_STATION && - (tile = GetStation(v->current_order.station)->train_tile) != 0) - v->dest_tile = tile; + (tile = GetStation(v->current_order.station)->train_tile) != 0) { + v->dest_tile = tile; + } if ((v->vehstatus & VS_STOPPED) == 0) { /* running costs */ diff --git a/train_gui.c b/train_gui.c index 294ad9267..35b66b956 100644 --- a/train_gui.c +++ b/train_gui.c @@ -150,8 +150,7 @@ void CcBuildLoco(bool success, TileIndex tile, uint32 p1, uint32 p2) { const Vehicle* v; - if (!success) - return; + if (!success) return; v = GetVehicle(_new_train_id); if (tile == _backup_orders_tile) { @@ -163,11 +162,7 @@ void CcBuildLoco(bool success, TileIndex tile, uint32 p1, uint32 p2) void CcCloneTrain(bool success, uint tile, uint32 p1, uint32 p2) { - if (success) { - const Vehicle* v = GetVehicle(_new_train_id); - - ShowTrainViewWindow(v); - } + if (success) ShowTrainViewWindow(GetVehicle(_new_train_id)); } static void engine_drawing_loop(int *x, int *y, int *pos, int *sel, diff --git a/tree_cmd.c b/tree_cmd.c index 80ee3122e..61d64d4c9 100644 --- a/tree_cmd.c +++ b/tree_cmd.c @@ -306,8 +306,7 @@ static void DrawTile_Trees(TileInfo *ti) i = (ti->map5 >> 6) + 1; do { uint32 image = s[0] + (--i == 0 ? GB(ti->map5, 0, 3) : 3); - if (_display_opt & DO_TRANS_BUILDINGS) - MAKE_TRANSPARENT(image); + if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image); te[i].image = image; te[i].x = d[0]; te[i].y = d[1]; diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c index 6ad1f79f7..ff8791f0f 100644 --- a/tunnelbridge_cmd.c +++ b/tunnelbridge_cmd.c @@ -58,10 +58,12 @@ const Bridge orig_bridge[] = { // basically the cost delta is 1,1, 1, 2,2, 3,3,3, 4,4,4,4, 5,5,5,5,5, 6,6,6,6,6,6, 7,7,7,7,7,7,7, 8,8,8,8,8,8,8,8, int CalcBridgeLenCostFactor(int x) { - int n,r; + int n; + int r; + if (x < 2) return x; x -= 2; - for(n=0,r=2;;n++) { + for (n = 0, r = 2;; n++) { if (x <= n) return r + x * n; r += n * n; x -= n; @@ -115,79 +117,68 @@ static inline int GetBridgeType(TileIndex tile) */ static uint32 CheckBridgeSlope(uint direction, uint tileh, bool is_start_tile) { - if (!IsSteepTileh(tileh)) { // disable building on very steep slopes - - if (is_start_tile) { - /* check slope at start tile - - no extra cost - - direction X: tiles 0,12 - - direction Y: tiles 0, 9 - */ - if ((direction?0x201:0x1001) & (1 << tileh)) - return 0; - - // disallow certain start tiles to avoid certain crooked bridges - if (tileh == 2) - return CMD_ERROR; - - } - else { - /* check slope at end tile - - no extra cost - - direction X: tiles 0, 3 - - direction Y: tiles 0, 6 - */ - if ((direction?0x41:0x9) & (1 << tileh)) - return 0; - - // disallow certain end tiles to avoid certain crooked bridges - if (tileh == 8) - return CMD_ERROR; - - } - - /* disallow common start/end tiles to avoid certain crooked bridges e.g. - * start-tile: X 2,1 Y 2,4 (2 was disabled before) - * end-tile: X 8,4 Y 8,1 (8 was disabled before) - */ - if ( (tileh == 1 && (is_start_tile != (bool)direction)) || - (tileh == 4 && (is_start_tile == (bool)direction)) ) - return CMD_ERROR; + if (IsSteepTileh(tileh)) return CMD_ERROR; + + if (is_start_tile) { + /* check slope at start tile + - no extra cost + - direction X: tiles 0, 12 + - direction Y: tiles 0, 9 + */ + if ((direction ? 0x201 : 0x1001) & (1 << tileh)) return 0; + + // disallow certain start tiles to avoid certain crooked bridges + if (tileh == 2) return CMD_ERROR; + } else { + /* check slope at end tile + - no extra cost + - direction X: tiles 0, 3 + - direction Y: tiles 0, 6 + */ + if ((direction? 0x41 : 0x9) & (1 << tileh)) return 0; + + // disallow certain end tiles to avoid certain crooked bridges + if (tileh == 8) return CMD_ERROR; + } - // slope foundations - if (BRIDGE_FULL_LEVELED_FOUNDATION & (1 << tileh) || BRIDGE_PARTLY_LEVELED_FOUNDATION & (1 << tileh)) - return _price.terraform; + /* disallow common start/end tiles to avoid certain crooked bridges e.g. + * start-tile: X 2,1 Y 2,4 (2 was disabled before) + * end-tile: X 8,4 Y 8,1 (8 was disabled before) + */ + if ((tileh == 1 && is_start_tile != (bool)direction) || + (tileh == 4 && is_start_tile == (bool)direction)) { + return CMD_ERROR; } + // slope foundations + if (BRIDGE_FULL_LEVELED_FOUNDATION & (1 << tileh) || BRIDGE_PARTLY_LEVELED_FOUNDATION & (1 << tileh)) + return _price.terraform; + return CMD_ERROR; } uint32 GetBridgeLength(TileIndex begin, TileIndex end) { - int x1, y1, x2, y2; // coordinates of starting and end tiles - x1 = TileX(begin); - y1 = TileY(begin); - x2 = TileX(end); - y2 = TileY(end); + int x1 = TileX(begin); + int y1 = TileY(begin); + int x2 = TileX(end); + int y2 = TileY(end); - return abs((x2 + y2 - x1 - y1)) - 1; + return abs(x2 + y2 - x1 - y1) - 1; } -bool CheckBridge_Stuff(byte bridge_type, int bridge_len) +bool CheckBridge_Stuff(byte bridge_type, uint bridge_len) { - int max; // max possible length of a bridge (with patch 100) const Bridge *b = &_bridge[bridge_type]; + uint max; // max possible length of a bridge (with patch 100) if (bridge_type >= MAX_BRIDGES) return false; if (b->avail_year > _cur_year) return false; max = b->max_length; - if (max >= 16 && _patches.longbridges) - max = 100; + if (max >= 16 && _patches.longbridges) max = 100; - if (bridge_len < b->min_length || bridge_len > max) return false; - - return true; + return b->min_length <= bridge_len && bridge_len <= max; } /** Build a Bridge @@ -203,9 +194,10 @@ int32 CmdBuildBridge(int x, int y, uint32 flags, uint32 p1, uint32 p2) byte rail_or_road, railtype, m5; int sx,sy; TileInfo ti_start, ti_end, ti; /* OPT: only 2 of those are ever used */ - int bridge_len, odd_middle_part; + uint bridge_len; + uint odd_middle_part; uint direction; - int i; + uint i; int32 cost, terraformcost, ret; bool allow_on_slopes; @@ -233,8 +225,7 @@ int32 CmdBuildBridge(int x, int y, uint32 flags, uint32 p1, uint32 p2) /* check if valid, and make sure that (x,y) are smaller than (sx,sy) */ if (x == sx) { - if (y == sy) - return_cmd_error(STR_5008_CANNOT_START_AND_END_ON); + if (y == sy) return_cmd_error(STR_5008_CANNOT_START_AND_END_ON); direction = 1; if (y > sy) { intswap(y,sy); @@ -245,8 +236,9 @@ int32 CmdBuildBridge(int x, int y, uint32 flags, uint32 p1, uint32 p2) intswap(y,sy); intswap(x,sx); } - } else + } else { return_cmd_error(STR_500A_START_AND_END_MUST_BE_IN); + } /* set and test bridge length, availability */ bridge_len = ((sx + sy - x - y) >> 4) - 1; @@ -292,8 +284,8 @@ int32 CmdBuildBridge(int x, int y, uint32 flags, uint32 p1, uint32 p2) /* Try and clear the end landscape */ - if (CmdFailed(ret = DoCommandByTile(ti_end.tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR))) - return CMD_ERROR; + ret = DoCommandByTile(ti_end.tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); + if (CmdFailed(ret)) return CMD_ERROR; cost += ret; // false - end tile slope check @@ -330,18 +322,17 @@ int32 CmdBuildBridge(int x, int y, uint32 flags, uint32 p1, uint32 p2) for (i = 0; i != bridge_len; i++) { if (direction != 0) { y += 16; - } else + } else { x += 16; + } FindLandscapeHeight(&ti, x, y); _error_message = STR_5009_LEVEL_LAND_OR_WATER_REQUIRED; - if (ti.tileh != 0 && ti.z >= ti_start.z) - return CMD_ERROR; + if (ti.tileh != 0 && ti.z >= ti_start.z) return CMD_ERROR; // Find ship below - if ( ti.type == MP_WATER && !EnsureNoVehicle(ti.tile) ) - { + if (ti.type == MP_WATER && !EnsureNoVehicle(ti.tile)) { _error_message = STR_980E_SHIP_IN_THE_WAY; return CMD_ERROR; } @@ -366,8 +357,8 @@ int32 CmdBuildBridge(int x, int y, uint32 flags, uint32 p1, uint32 p2) } else { not_valid_below:; /* try and clear the middle landscape */ - if (CmdFailed(ret = DoCommandByTile(ti.tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR))) - return CMD_ERROR; + ret = DoCommandByTile(ti.tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); + if (CmdFailed(ret)) return CMD_ERROR; cost += ret; m5 = 0xC0; } @@ -385,21 +376,21 @@ not_valid_below:; // bridge len 5: 0 2 5 3 1 // bridge len 6: 0 2 3 2 3 1 // bridge len 7: 0 2 3 4 2 3 1 - // #0 - alwats as first, #1 - always as last (if len>1) + // #0 - always as first, #1 - always as last (if len>1) // #2,#3 are to pair in order // for odd bridges: #5 is going in the bridge middle if on even position, #4 on odd (counting from 0) - if(i==0) //first tile + if (i == 0) { // first tile m5 = 0; - else if (i==bridge_len-1) //last tile + } else if (i == bridge_len - 1) { // last tile m5 = 1; - else if(i==odd_middle_part) //we are on the middle of odd bridge: #5 on even pos, #4 on odd - m5 = 5 - (i%2); - else { + } else if (i == odd_middle_part) { // we are on the middle of odd bridge: #5 on even pos, #4 on odd + m5 = 5 - (i % 2); + } else { // generate #2 and #3 in turns [i%2==0], after the middle of odd bridge // this sequence swaps [... XOR (i>odd_middle_part)], // for even bridges XOR does not apply as odd_middle_part==bridge_len - m5 = 2 + ((i%2==0)^(i>odd_middle_part)); + m5 = 2 + ((i % 2 == 0) ^ (i > odd_middle_part)); } _m[ti.tile].m2 = (bridge_type << 4) | m5; @@ -409,7 +400,7 @@ not_valid_below:; } } - SetSignalsOnBothDir(ti_start.tile, (direction&1) ? 1 : 0); + SetSignalsOnBothDir(ti_start.tile, (direction & 1) ? 1 : 0); /* for human player that builds the bridge he gets a selection to choose from bridges (DC_QUERY_COST) It's unnecessary to execute this command every time for every bridge. So it is done only @@ -496,7 +487,7 @@ static int32 DoBuildTunnel(int x, int y, int x2, int y2, uint32 flags, uint exc_ z = ti.z; if (exc_tile != 3) { - if ( (direction ? 9U : 12U) != ti.tileh) + if ((direction ? 9U : 12U) != ti.tileh) return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION); ret = DoCommandByTile(ti.tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); if (CmdFailed(ret)) return CMD_ERROR; @@ -504,11 +495,10 @@ static int32 DoBuildTunnel(int x, int y, int x2, int y2, uint32 flags, uint exc_ } cost += _price.build_tunnel; - for(;;) { + for (;;) { if (direction) y2-=16; else x2-=16; - if (x2 == x && y2 == y) - break; + if (x2 == x && y2 == y) break; FindLandscapeHeight(&ti, x2, y2); if (ti.z <= z) return CMD_ERROR; @@ -519,15 +509,14 @@ static int32 DoBuildTunnel(int x, int y, int x2, int y2, uint32 flags, uint exc_ cost += _price.build_tunnel; cost += (cost >> 3); - if (cost >= 400000000) - cost = 400000000; + if (cost >= 400000000) cost = 400000000; } FindLandscapeHeight(&ti, x2, y2); if (ti.z != z) return CMD_ERROR; if (exc_tile != 1) { - if ( (direction ? 6U : 3U) != ti.tileh) + if ((direction ? 6U : 3U) != ti.tileh) return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION); ret = DoCommandByTile(ti.tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); @@ -559,7 +548,7 @@ static int32 DoBuildTunnel(int x, int y, int x2, int y2, uint32 flags, uint exc_ /** Build Tunnel. * @param x,y start tile coord of tunnel * @param p1 railtype, 0x200 for road tunnel - * @param p2 unused (XXX - ptr to uint that recieves end tile; wtf?????) + * @param p2 unused */ int32 CmdBuildTunnel(int x, int y, uint32 flags, uint32 p1, uint32 p2) { @@ -585,11 +574,12 @@ int32 CmdBuildTunnel(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (!EnsureNoVehicle(tiorg.tile)) return CMD_ERROR; - if (!(direction=0, tiorg.tileh==12) && - !(direction++, tiorg.tileh==6) && - !(direction++, tiorg.tileh==3) && - !(direction++, tiorg.tileh==9) ) + if (!(direction=0, tiorg.tileh == 12) && + !(direction++, tiorg.tileh == 6) && + !(direction++, tiorg.tileh == 3) && + !(direction++, tiorg.tileh == 9)) { return_cmd_error(STR_500B_SITE_UNSUITABLE_FOR_TUNNEL); + } z = tiorg.z; do { @@ -600,8 +590,7 @@ int32 CmdBuildTunnel(int x, int y, uint32 flags, uint32 p1, uint32 p2) _build_tunnel_endtile = ti.tile; - if (!EnsureNoVehicle(ti.tile)) - return CMD_ERROR; + if (!EnsureNoVehicle(ti.tile)) return CMD_ERROR; if (ti.tileh != _build_tunnel_tileh[direction]) { if (CmdFailed(DoCommandByTile(ti.tile, ti.tileh & ~_build_tunnel_tileh[direction], 0, flags, CMD_TERRAFORM_LAND))) @@ -684,7 +673,7 @@ static int32 DoClearTunnel(TileIndex tile, uint32 flags) if (IsTileOwner(tile, OWNER_TOWN) && _game_mode != GM_EDITOR) ChangeTownRating(t, RATING_TUNNEL_BRIDGE_DOWN_STEP, RATING_TUNNEL_BRIDGE_MINIMUM); } - return _price.clear_tunnel * (length + 1); + return _price.clear_tunnel * (length + 1); } static TileIndex FindEdgesOfBridge(TileIndex tile, TileIndex *endtile) @@ -746,8 +735,7 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags) int32 cost; // check for vehicles under bridge - if (!EnsureNoVehicleZ(tile, TilePixelHeight(tile))) - return CMD_ERROR; + if (!EnsureNoVehicleZ(tile, TilePixelHeight(tile))) return CMD_ERROR; cost = _price.clear_water; if (flags & DC_EXEC) { _m[tile].m5 = _m[tile].m5 & ~0x38; @@ -765,8 +753,7 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags) return CMD_ERROR; } - if (!EnsureNoVehicle(tile) || !EnsureNoVehicle(endtile)) - return CMD_ERROR; + if (!EnsureNoVehicle(tile) || !EnsureNoVehicle(endtile)) return CMD_ERROR; /* Make sure there's no vehicle on the bridge Omit tile and endtile, since these are already checked, thus solving the problem @@ -775,7 +762,8 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags) tile += direction ? TileDiffXY(0, 1) : TileDiffXY(1, 0); endtile -= direction ? TileDiffXY(0, 1) : TileDiffXY(1, 0); /* Bridges on slopes might have their Z-value offset..correct this */ - if ((v = FindVehicleBetween(tile, endtile, TilePixelHeight(tile) + 8 + GetCorrectTileHeight(tile))) != NULL) { + v = FindVehicleBetween(tile, endtile, TilePixelHeight(tile) + 8 + GetCorrectTileHeight(tile)); + if (v != NULL) { VehicleInTheWayErrMsg(v); return CMD_ERROR; } @@ -811,7 +799,7 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags) if (m5 & 0x40) { if (m5 & 0x20) { static const uint16 _new_data_table[] = {0x1002, 0x1001, 0x2005, 0x200A, 0, 0, 0, 0}; - new_data = _new_data_table[((m5 & 0x18) >> 2) | (m5&1)]; + new_data = _new_data_table[((m5 & 0x18) >> 2) | (m5 & 1)]; } else { if (GB(m5, 3, 2) == 0) goto clear_it; new_data = (GetTileSlope(c, NULL) == 0) ? 0x6000 : 0x6001; @@ -846,13 +834,11 @@ static int32 ClearTile_TunnelBridge(TileIndex tile, byte flags) byte m5 = _m[tile].m5; if ((m5 & 0xF0) == 0) { - if (flags & DC_AUTO) - return_cmd_error(STR_5006_MUST_DEMOLISH_TUNNEL_FIRST); + if (flags & DC_AUTO) return_cmd_error(STR_5006_MUST_DEMOLISH_TUNNEL_FIRST); return DoClearTunnel(tile, flags); } else if (m5 & 0x80) { - if (flags & DC_AUTO) - return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST); + if (flags & DC_AUTO) return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST); return DoClearBridge(tile, flags); } @@ -896,7 +882,7 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, uint totype, bool exec) MarkTileDirtyByTile(tile); } return _price.build_rail >> 1; - } else if ((_m[tile].m5&0xC6) == 0x80) { + } else if ((_m[tile].m5 & 0xC6) == 0x80) { TileIndex starttile; int32 cost; uint z = TilePixelHeight(tile); @@ -908,7 +894,8 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, uint totype, bool exec) // railway bridge starttile = tile = FindEdgesOfBridge(tile, &endtile); // Make sure there's no vehicle on the bridge - if ((v=FindVehicleBetween(tile, endtile, z)) != NULL) { + v = FindVehicleBetween(tile, endtile, z); + if (v != NULL) { VehicleInTheWayErrMsg(v); return CMD_ERROR; } @@ -929,7 +916,7 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, uint totype, bool exec) } MarkTileDirtyByTile(tile); } - cost += (_price.build_rail>>1); + cost += _price.build_rail >> 1; tile += GB(_m[tile].m5, 0, 1) ? TileDiffXY(0, 1) : TileDiffXY(1, 0); } while (tile <= endtile); @@ -1016,7 +1003,8 @@ static void DrawBridgePillars(const TileInfo *ti, int x, int y, int z) } } -uint GetBridgeFoundation(uint tileh, byte direction) { +uint GetBridgeFoundation(uint tileh, byte direction) +{ int i; // normal level sloped building (7, 11, 13, 14) if (BRIDGE_FULL_LEVELED_FOUNDATION & (1 << tileh)) @@ -1089,7 +1077,6 @@ static void DrawTile_TunnelBridge(TileInfo *ti) assert( (base_offset & 0x07) == 0x00); if (!(ti->map5 & 0x40)) { // bridge ramps - if (!(BRIDGE_NO_FOUNDATION & (1 << ti->tileh))) { // no foundations for 0, 3, 6, 9, 12 int f = GetBridgeFoundation(ti->tileh, ti->map5 & 0x1); // pass direction if (f) DrawFoundation(ti, f); @@ -1228,11 +1215,10 @@ static uint GetSlopeZ_TunnelBridge(const TileInfo* ti) // to the side of the tunnel/bridge? if (IS_INT_INSIDE(y, 5, 10+1)) { // tunnel? - if ( (ti->map5 & 0xF0) == 0) - return z; + if ((ti->map5 & 0xF0) == 0) return z; // bridge? - if ( ti->map5 & 0x80 ) { + if (ti->map5 & 0x80) { // bridge ending? if (!(ti->map5 & 0x40)) { if (BRIDGE_FULL_LEVELED_FOUNDATION & (1 << tileh)) // 7, 11, 13, 14 @@ -1241,7 +1227,6 @@ static uint GetSlopeZ_TunnelBridge(const TileInfo* ti) // no ramp for bridge ending if ((BRIDGE_PARTLY_LEVELED_FOUNDATION & (1 << tileh) || BRIDGE_NO_FOUNDATION & (1 << tileh)) && tileh != 0) { return z + 8; - } else if (!(ti->map5 & 0x20)) { // northern / southern ending // ramp return (z + (x>>1) + 1); @@ -1256,12 +1241,10 @@ static uint GetSlopeZ_TunnelBridge(const TileInfo* ti) if (tileh != 0) z += 8; // keep the same elevation because we're on the bridge? - if (_get_z_hint >= z + 8) - return _get_z_hint; + if (_get_z_hint >= z + 8) return _get_z_hint; // actually on the bridge, but not yet in the shared area. - if (!IS_INT_INSIDE(x, 5, 10+1)) - return GetBridgeHeight(ti) + 8; + if (!IS_INT_INSIDE(x, 5, 10 + 1)) return GetBridgeHeight(ti) + 8; // in the shared area, assume that we're below the bridge, cause otherwise the hint would've caught it. // if rail or road below then it means it's possibly build on slope below the bridge. @@ -1279,21 +1262,21 @@ static uint GetSlopeZ_TunnelBridge(const TileInfo* ti) } } else { // if it's a bridge middle with transport route below, then we need to compensate for build on slopes - if ( (ti->map5 & (0x80 + 0x40 + 0x20)) == (0x80 + 0x40 + 0x20)) { + if ((ti->map5 & (0x80 | 0x40 | 0x20)) == (0x80 | 0x40 | 0x20)) { uint f; if (tileh != 0) z += 8; - f = _bridge_foundations[ti->map5&1][tileh]; + f = _bridge_foundations[ti->map5 & 1][tileh]; if (IS_BYTE_INSIDE(f, 1, 15)) return z; if (f != 0) tileh = _inclined_tileh[f - 15]; } } // default case - z = ti->z; - return GetPartialZ(ti->x & 0xF, ti->y & 0xF, tileh) + z; + return GetPartialZ(ti->x & 0xF, ti->y & 0xF, tileh) + ti->z; } -static uint GetSlopeTileh_TunnelBridge(const TileInfo *ti) { +static uint GetSlopeTileh_TunnelBridge(const TileInfo* ti) +{ // not accurate, but good enough for slope graphics drawing return 0; } @@ -1363,7 +1346,7 @@ static void AnimateTile_TunnelBridge(TileIndex tile) static void TileLoop_TunnelBridge(TileIndex tile) { if (_opt.landscape == LT_HILLY) { - if ( GetTileZ(tile) > _opt.snow_line) { + if (GetTileZ(tile) > _opt.snow_line) { if (!(_m[tile].m4 & 0x80)) { _m[tile].m4 |= 0x80; MarkTileDirtyByTile(tile); @@ -1407,29 +1390,30 @@ static uint32 GetTileTrackStatus_TunnelBridge(TileIndex tile, TransportType mode result = 0; if (GB(m5, 1, 2) == mode) { /* Transport over the bridge is compatible */ - result = m5&1 ? 0x202 : 0x101; + result = m5 & 1 ? 0x202 : 0x101; } if (m5 & 0x40) { /* Bridge middle part */ if (!(m5 & 0x20)) { /* Clear ground or water underneath */ - if ((m5 & 0x18) != 8) + if ((m5 & 0x18) != 8) { /* Clear ground */ return result; - else - if (mode != TRANSPORT_WATER) - return result; + } else { + if (mode != TRANSPORT_WATER) return result; + } } else { /* Transport underneath */ - if (GB(m5, 3, 2) != mode) + if (GB(m5, 3, 2) != mode) { /* Incompatible transport underneath */ return result; + } } /* If we've not returned yet, there is a compatible * transport or water beneath, so we can add it to * result */ /* Why is this xor'd ? Can't it just be or'd? */ - result ^= m5&1 ? 0x101 : 0x202; + result ^= m5 & 1 ? 0x101 : 0x202; } return result; } else { @@ -1445,7 +1429,7 @@ static void ChangeTileOwner_TunnelBridge(TileIndex tile, PlayerID old_player, Pl if (new_player != OWNER_SPECTATOR) { SetTileOwner(tile, new_player); } else { - if((_m[tile].m5 & 0xC0)==0xC0) { + if ((_m[tile].m5 & 0xC0) == 0xC0) { // the stuff BELOW the middle part is owned by the deleted player. if (!(_m[tile].m5 & (1 << 4 | 1 << 3))) { // convert railway into grass. @@ -1556,9 +1540,8 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y myabs(h - v->z_pos) > 2) { // high above the ground -> on the bridge /* modify speed of vehicle */ uint16 spd = _bridge[GetBridgeType(tile)].speed; - if (v->type == VEH_Road) spd<<=1; - if (spd < v->cur_speed) - v->cur_speed = spd; + if (v->type == VEH_Road) spd *= 2; + if (spd < v->cur_speed) v->cur_speed = spd; } } } @@ -80,8 +80,7 @@ static void VehiclePoolNewBlock(uint start_item) { Vehicle *v; - FOR_ALL_VEHICLES_FROM(v, start_item) - v->index = start_item++; + FOR_ALL_VEHICLES_FROM(v, start_item) v->index = start_item++; } /* Initialize the vehicle-pool */ @@ -230,9 +229,7 @@ void AfterLoadVehicles(void) case VEH_Aircraft: if (v->subtype == 0 || v->subtype == 2) { v->cur_image = GetAircraftImage(v, v->direction); - if (v->next != NULL) { - v->next->cur_image = v->cur_image; - } + if (v->next != NULL) v->next->cur_image = v->cur_image; } break; default: break; @@ -325,12 +322,14 @@ static Vehicle *AllocateSingleVehicle(VehicleID *skip_vehicles) return NULL; } + Vehicle *AllocateVehicle(void) { VehicleID counter = 0; return AllocateSingleVehicle(&counter); } + /** Allocates a lot of vehicles and frees them again * @param vl pointer to an array of vehicles to get allocated. Can be NULL if the vehicles aren't needed (makes it test only) * @param num number of vehicles to allocate room for @@ -359,7 +358,6 @@ bool AllocateVehicles(Vehicle **vl, int num) void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc) { int x,y,x2,y2; - VehicleID veh; Point pt = RemapCoords(TileX(tile) * 16, TileY(tile) * 16, 0); x2 = ((pt.x + 104) & 0x1F80) >> 7; @@ -368,16 +366,16 @@ void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc) y2 = ((pt.y + 56) & 0xFC0); y = ((pt.y - 294) & 0xFC0); - for(;;) { + for (;;) { int xb = x; - for(;;) { - veh = _vehicle_position_hash[ (x+y)&0xFFFF ]; + for (;;) { + VehicleID veh = _vehicle_position_hash[(x + y) & 0xFFFF]; while (veh != INVALID_VEHICLE) { Vehicle *v = GetVehicle(veh); void *a; - if ((a = proc(v, data)) != NULL) - return a; + a = proc(v, data); + if (a != NULL) return a; veh = v->next_hash; } @@ -408,8 +406,7 @@ void UpdateVehiclePosHash(Vehicle *v, int x, int y) new_hash = (x == INVALID_COORD) ? NULL : &_vehicle_position_hash[GEN_HASH(x,y)]; old_hash = (old_x == INVALID_COORD) ? NULL : &_vehicle_position_hash[GEN_HASH(old_x, old_y)]; - if (old_hash == new_hash) - return; + if (old_hash == new_hash) return; /* remove from hash table? */ if (old_hash != NULL) { @@ -421,10 +418,11 @@ void UpdateVehiclePosHash(Vehicle *v, int x, int y) last = u; } - if (last == NULL) + if (last == NULL) { *old_hash = v->next_hash; - else + } else { last->next_hash = v->next_hash; + } } /* insert into hash table? */ @@ -525,8 +523,8 @@ Vehicle *GetFirstVehicleInChain(const Vehicle *v) uint CountVehiclesInChain(const Vehicle* v) { - int count = 0; - do count++; while ( (v=v->next) != NULL); + uint count = 0; + do count++; while ((v = v->next) != NULL); return count; } @@ -719,7 +717,7 @@ void ViewportAddVehicles(DrawPixelInfo *dpi) for(;;) { xb = x; for(;;) { - veh = _vehicle_position_hash[ (x+y)&0xFFFF ]; + veh = _vehicle_position_hash[(x + y) & 0xFFFF]; while (veh != INVALID_VEHICLE) { v = GetVehicle(veh); @@ -1411,9 +1409,10 @@ void CheckVehicleBreakdown(Vehicle *v) if ((rel_old >> 8) != (rel >> 8)) InvalidateWindow(WC_VEHICLE_DETAILS, v->index); - if (v->breakdown_ctr != 0 || (v->vehstatus & VS_STOPPED) != 0 || - v->cur_speed < 5 || _game_mode == GM_MENU) - return; + if (v->breakdown_ctr != 0 || v->vehstatus & VS_STOPPED || + v->cur_speed < 5 || _game_mode == GM_MENU) { + return; + } r = Random(); @@ -1427,8 +1426,7 @@ void CheckVehicleBreakdown(Vehicle *v) if (v->type == VEH_Ship) rel += 0x6666; /* disabled breakdowns? */ - if (_opt.diff.vehicle_breakdowns < 1) - return; + if (_opt.diff.vehicle_breakdowns < 1) return; /* reduced breakdowns? */ if (_opt.diff.vehicle_breakdowns == 1) rel += 0x6666; @@ -1450,12 +1448,10 @@ static const StringID _vehicle_type_names[4] = { static void ShowVehicleGettingOld(Vehicle *v, StringID msg) { - if (v->owner != _local_player) - return; + if (v->owner != _local_player) return; // Do not show getting-old message if autorenew is active - if (GetPlayer(v->owner)->engine_renew) - return; + if (GetPlayer(v->owner)->engine_renew) return; SetDParam(0, _vehicle_type_names[v->type - 0x10]); SetDParam(1, v->unitnumber); @@ -1492,20 +1488,19 @@ static Vehicle *GetNextEnginePart(Vehicle *v) { switch (v->type) { case VEH_Train: - { - const RailVehicleInfo *rvi = RailVehInfo(v->engine_type); - if (rvi->flags & RVI_MULTIHEAD) + if (RailVehInfo(v->engine_type)->flags & RVI_MULTIHEAD) { return GetRearEngine(v, v->engine_type); - if (v->next != NULL && v->next->subtype == TS_Artic_Part) - return v->next; - } + } + if (v->next != NULL && v->next->subtype == TS_Artic_Part) return v->next; break; + case VEH_Aircraft: return v->next; - break; + case VEH_Road: case VEH_Ship: break; + default: NOT_REACHED(); } return NULL; @@ -1523,8 +1518,7 @@ int32 CmdCloneVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) Vehicle *w_front, *w, *w_rear; int cost, total_cost = 0; - if (!IsVehicleIndex(p1)) - return CMD_ERROR; + if (!IsVehicleIndex(p1)) return CMD_ERROR; v = GetVehicle(p1); v_front = v; w = NULL; @@ -1540,8 +1534,7 @@ int32 CmdCloneVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) * w_rear is the rear end of the cloned train. It's used to add more cars and is only used by trains */ - if (!CheckOwnership(v->owner)) - return CMD_ERROR; + if (!CheckOwnership(v->owner)) return CMD_ERROR; if (v->type == VEH_Train && v->subtype != TS_Front_Engine) return CMD_ERROR; @@ -1567,7 +1560,7 @@ int32 CmdCloneVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) total_cost += cost; if (flags & DC_EXEC) { - w= GetVehicle(_new_vehicle_id); + w = GetVehicle(_new_vehicle_id); if (v->type != VEH_Road) { // road vehicles can't be refitted if (v->cargo_type != w->cargo_type) { @@ -1636,11 +1629,11 @@ static void MoveVehicleCargo(Vehicle *dest, Vehicle *source) } /* Replaces a vehicle (used to be called autorenew) - * This function is only called from MaybeReplaceVehicle(), which is the next one + * This function is only called from MaybeReplaceVehicle() * Must be called with _current_player set to the owner of the vehicle * @param w Vehicle to replace * @param flags is the flags to use when calling DoCommand(). Mainly DC_EXEC counts - * return value is cost of the replacement or CMD_ERROR + * @return value is cost of the replacement or CMD_ERROR */ static int32 ReplaceVehicle(Vehicle **w, byte flags) { @@ -1652,11 +1645,9 @@ static int32 ReplaceVehicle(Vehicle **w, byte flags) bool new_front = false; Vehicle *new_v = NULL; - new_engine_type = p->engine_replacement[old_v->engine_type] == INVALID_ENGINE ? old_v->engine_type: p->engine_replacement[old_v->engine_type]; + new_engine_type = p->engine_replacement[old_v->engine_type] == INVALID_ENGINE ? old_v->engine_type : p->engine_replacement[old_v->engine_type]; cost = DoCommand(old_v->x_pos, old_v->y_pos, new_engine_type, 2, flags, CMD_BUILD_VEH(old_v->type)); - - //check if the new engine is buildable if (CmdFailed(cost)) return cost; if (flags & DC_EXEC) { @@ -1708,11 +1699,12 @@ static int32 ReplaceVehicle(Vehicle **w, byte flags) return cost; } -/** replaces a vehicle if it's set for autoreplace or is too old(used to be called autorenew) -* @param v The vehicle to replace -* if the vehicle is a train, v needs to be the front engine -* return value is a pointer to the new vehicle, which is the same as the argument if nothing happened -*/ +/** replaces a vehicle if it's set for autoreplace or is too old + * (used to be called autorenew) + * @param v The vehicle to replace + * if the vehicle is a train, v needs to be the front engine + * return value is a pointer to the new vehicle, which is the same as the argument if nothing happened + */ static void MaybeReplaceVehicle(Vehicle *v) { Vehicle *w; @@ -1739,14 +1731,15 @@ static void MaybeReplaceVehicle(Vehicle *v) train_fits_in_station = true; } - while (true) { + for (;;) { cost = 0; w = v; do { // check if the vehicle should be replaced - if (!p->engine_renew || w->age - w->max_age < (p->engine_renew_months * 30) //replace if engine is too old - || (w->max_age == 0)) { // rail cars got a max age of 0 - if (p->engine_replacement[w->engine_type] == INVALID_ENGINE) // updates to a new model + if (!p->engine_renew || + w->age - w->max_age < (p->engine_renew_months * 30) || // replace if engine is too old + w->max_age == 0) { // rail cars got a max age of 0 + if (p->engine_replacement[w->engine_type] == INVALID_ENGINE) // updates to a new model continue; } @@ -1760,14 +1753,16 @@ static void MaybeReplaceVehicle(Vehicle *v) /* Now replace the vehicle */ temp_cost = ReplaceVehicle(&w, flags); - if (flags & DC_EXEC && !(w->type == VEH_Train && w->u.rail.first_engine != INVALID_VEHICLE)){ - // now we bought a new engine and sold the old one. We need to fix the pointers in order to avoid pointing to the old one - // for trains: these pointers should point to the front engine and not the cars + if (flags & DC_EXEC && + (w->type != VEH_Train || w->u.rail.first_engine == INVALID_VEHICLE)) { + /* now we bought a new engine and sold the old one. We need to fix the + * pointers in order to avoid pointing to the old one for trains: these + * pointers should point to the front engine and not the cars + */ v = w; } - if (CmdFailed(temp_cost)) - break; + if (CmdFailed(temp_cost)) break; cost += temp_cost; } while (w->type == VEH_Train && (w = GetNextVehicle(w)) != NULL); @@ -1787,8 +1782,7 @@ static void MaybeReplaceVehicle(Vehicle *v) AddNewsItem(message, NEWS_FLAGS(NM_SMALL, NF_VIEWPORT|NF_VEHICLE, NT_ADVICE, 0), v->index, 0); } - if (stopped) - v->vehstatus &= ~VS_STOPPED; //we start the vehicle again + if (stopped) v->vehstatus &= ~VS_STOPPED; _current_player = OWNER_NONE; return; } @@ -1823,8 +1817,7 @@ static void MaybeReplaceVehicle(Vehicle *v) if (IsLocalPlayer()) ShowCostOrIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, cost); - if (stopped) - v->vehstatus &= ~VS_STOPPED; //we start the vehicle again + if (stopped) v->vehstatus &= ~VS_STOPPED; _current_player = OWNER_NONE; } @@ -166,7 +166,7 @@ struct WorldSprite { struct Vehicle { byte type; // type, ie roadven,train,ship,aircraft,special - byte subtype; // subtype (Filled with values from EffectVehicles or TrainSubTypes)(Filled with values from EffectVehicles or TrainSubTypes) + byte subtype; // subtype (Filled with values from EffectVehicles or TrainSubTypes) VehicleID index; // NOSAVE: Index in vehicle array @@ -184,7 +184,6 @@ struct Vehicle { int32 x_pos; // coordinates int32 y_pos; - byte z_pos; byte direction; // facing @@ -263,8 +262,6 @@ struct Vehicle { int32 profit_last_year; uint32 value; - - union { VehicleRail rail; VehicleAir air; diff --git a/vehicle_gui.c b/vehicle_gui.c index 3e93ec6f9..f5f9fe5f4 100644 --- a/vehicle_gui.c +++ b/vehicle_gui.c @@ -105,9 +105,9 @@ void ResortVehicleLists(void) void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID station) { - int subtype = (type != VEH_Aircraft) ? TS_Front_Engine : 2; - int n = 0; - int i; + uint subtype = (type != VEH_Aircraft) ? TS_Front_Engine : 2; + uint n = 0; + uint i; if (!(vl->flags & VL_REBUILD)) return; @@ -185,14 +185,15 @@ void DrawVehicleProfitButton(const Vehicle *v, int x, int y) uint32 ormod; // draw profit-based colored icons - if(v->age <= 365 * 2) + if (v->age <= 365 * 2) { ormod = PALETTE_TO_GREY; - else if(v->profit_last_year < 0) + } else if (v->profit_last_year < 0) { ormod = PALETTE_TO_RED; - else if(v->profit_last_year < 10000) + } else if (v->profit_last_year < 10000) { ormod = PALETTE_TO_YELLOW; - else + } else { ormod = PALETTE_TO_GREEN; + } DrawSprite(SPR_BLOT | ormod, x, y); } @@ -282,7 +283,7 @@ static int CDECL VehicleNameSorter(const void *a, const void *b) GetString(buf1, STR_JUST_STRING); } - if ( cmp2->index != _last_vehicle_idx) { + if (cmp2->index != _last_vehicle_idx) { _last_vehicle_idx = cmp2->index; _bufcache[0] = '\0'; if (vb->string_id != _internal_name_sorter_id) { @@ -415,9 +416,9 @@ static void train_engine_drawing_loop(int *x, int *y, int *pos, int *sel, int *s const RailVehicleInfo *rvi = RailVehInfo(i); const EngineInfo *info = &_engine_info[i]; - if (p->engine_replacement[i] == INVALID_ENGINE && _player_num_engines[i] == 0 && show_outdated ) continue; + if (p->engine_replacement[i] == INVALID_ENGINE && _player_num_engines[i] == 0 && show_outdated) continue; - if ( rvi->power == 0 && !(show_cars) ) // disables display of cars (works since they do not have power) + if (rvi->power == 0 && !show_cars) // disables display of cars (works since they do not have power) continue; if (*sel == 0) *selected_id = i; @@ -473,14 +474,14 @@ static void SetupScrollStuffForReplaceWindow(Window *w) const Engine *e = GetEngine(engine_id); const EngineInfo *info = &_engine_info[engine_id]; - if (ENGINE_AVAILABLE && RailVehInfo(engine_id)->power && e->railtype == railtype ) { + if (ENGINE_AVAILABLE && RailVehInfo(engine_id)->power && e->railtype == railtype) { if (_player_num_engines[engine_id] > 0 || p->engine_replacement[engine_id] != INVALID_ENGINE) { - if (sel[0]==0) selected_id[0] = engine_id; + if (sel[0] == 0) selected_id[0] = engine_id; count++; sel[0]--; } if (HASBIT(e->player_avail, _local_player)) { - if (sel[1]==0) selected_id[1] = engine_id; + if (sel[1] == 0) selected_id[1] = engine_id; count2++; sel[1]--; } @@ -498,22 +499,22 @@ static void SetupScrollStuffForReplaceWindow(Window *w) do { info = &_engine_info[engine_id]; if (_player_num_engines[engine_id] > 0 || p->engine_replacement[engine_id] != INVALID_ENGINE) { - if (sel[0]==0) selected_id[0] = engine_id; + if (sel[0] == 0) selected_id[0] = engine_id; count++; sel[0]--; } } while (++engine_id,++e,--num); - if ( selected_id[0] != -1 ) { // only draw right array if we have anything in the left one + if (selected_id[0] != -1) { // only draw right array if we have anything in the left one num = NUM_ROAD_ENGINES; engine_id = ROAD_ENGINES_INDEX; e = GetEngine(ROAD_ENGINES_INDEX); cargo = RoadVehInfo(selected_id[0])->cargo_type; do { - if ( cargo == RoadVehInfo(engine_id)->cargo_type && HASBIT(e->player_avail, _local_player)) { + if (cargo == RoadVehInfo(engine_id)->cargo_type && HASBIT(e->player_avail, _local_player)) { count2++; - if (sel[1]==0) selected_id[1] = engine_id; + if (sel[1] == 0) selected_id[1] = engine_id; sel[1]--; } } while (++engine_id,++e,--num); @@ -531,13 +532,13 @@ static void SetupScrollStuffForReplaceWindow(Window *w) do { info = &_engine_info[engine_id]; if (_player_num_engines[engine_id] > 0 || p->engine_replacement[engine_id] != INVALID_ENGINE) { - if ( sel[0] == 0 ) selected_id[0] = engine_id; + if (sel[0] == 0) selected_id[0] = engine_id; count++; sel[0]--; } } while (++engine_id,++e,--num); - if ( selected_id[0] != -1 ) { + if (selected_id[0] != -1) { num = NUM_SHIP_ENGINES; e = GetEngine(SHIP_ENGINES_INDEX); engine_id = SHIP_ENGINES_INDEX; @@ -545,10 +546,9 @@ static void SetupScrollStuffForReplaceWindow(Window *w) refittable = ShipVehInfo(selected_id[0])->refittable; do { - if (HASBIT(e->player_avail, _local_player) - && ( cargo == ShipVehInfo(engine_id)->cargo_type || refittable & ShipVehInfo(engine_id)->refittable)) { - - if ( sel[1]==0) selected_id[1] = engine_id; + if (HASBIT(e->player_avail, _local_player) && + (cargo == ShipVehInfo(engine_id)->cargo_type || refittable & ShipVehInfo(engine_id)->refittable)) { + if (sel[1] == 0) selected_id[1] = engine_id; sel[1]--; count2++; } @@ -568,12 +568,12 @@ static void SetupScrollStuffForReplaceWindow(Window *w) info = &_engine_info[engine_id]; if (_player_num_engines[engine_id] > 0 || p->engine_replacement[engine_id] != INVALID_ENGINE) { count++; - if (sel[0]==0) selected_id[0] = engine_id; + if (sel[0] == 0) selected_id[0] = engine_id; sel[0]--; } } while (++engine_id,++e,--num); - if ( selected_id[0] != -1 ) { + if (selected_id[0] != -1) { num = NUM_AIRCRAFT_ENGINES; e = GetEngine(AIRCRAFT_ENGINES_INDEX); subtype = AircraftVehInfo(selected_id[0])->subtype; @@ -582,7 +582,7 @@ static void SetupScrollStuffForReplaceWindow(Window *w) if (HASBIT(e->player_avail, _local_player)) { if (HASBIT(subtype, 0) == HASBIT(AircraftVehInfo(engine_id)->subtype, 0)) { count2++; - if (sel[1]==0) selected_id[1] = engine_id; + if (sel[1] == 0) selected_id[1] = engine_id; sel[1]--; } } @@ -640,7 +640,7 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int byte cargo; const EngineInfo* info; - if ( selected_id[0] >= ROAD_ENGINES_INDEX && selected_id[0] <= SHIP_ENGINES_INDEX ) { + if (selected_id[0] >= ROAD_ENGINES_INDEX && selected_id[0] < SHIP_ENGINES_INDEX) { cargo = RoadVehInfo(selected_id[0])->cargo_type; do { @@ -656,7 +656,7 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int sel[0]--; } - if ( RoadVehInfo(engine_id)->cargo_type == cargo && HASBIT(e->player_avail, _local_player) ) { + if (RoadVehInfo(engine_id)->cargo_type == cargo && HASBIT(e->player_avail, _local_player)) { if (IS_INT_INSIDE(--pos2, -w->vscroll.cap, 0) && RoadVehInfo(engine_id)->cargo_type == cargo) { DrawString(x2+59, y2+2, GetCustomEngineName(engine_id), sel[1]==0 ? 0xC : 0x10); DrawRoadVehEngine(x2+29, y2+6, engine_id, SPRITE_PALETTE(PLAYER_SPRITE_COLOR(_local_player))); @@ -676,7 +676,7 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int byte cargo, refittable; const EngineInfo* info; - if ( selected_id[0] != -1 ) { + if (selected_id[0] != -1) { cargo = ShipVehInfo(selected_id[0])->cargo_type; refittable = ShipVehInfo(selected_id[0])->refittable; @@ -708,7 +708,7 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int } //end of ship case VEH_Aircraft: { - if ( selected_id[0] != -1 ) { + if (selected_id[0] != -1) { int num = NUM_AIRCRAFT_ENGINES; const Engine* e = GetEngine(AIRCRAFT_ENGINES_INDEX); EngineID engine_id = AIRCRAFT_ENGINES_INDEX; @@ -718,7 +718,7 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int do { info = &_engine_info[engine_id]; if (_player_num_engines[engine_id] > 0 || p->engine_replacement[engine_id] != INVALID_ENGINE) { - if (sel[0]==0) selected_id[0] = engine_id; + if (sel[0] == 0) selected_id[0] = engine_id; if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) { DrawString(x+62, y+7, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10); DrawAircraftEngine(x+29, y+10, engine_id, _player_num_engines[engine_id] > 0 ? SPRITE_PALETTE(PLAYER_SPRITE_COLOR(_local_player)) : PALETTE_CRASH); @@ -728,9 +728,9 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int } sel[0]--; } - if ( (HASBIT(subtype, 0) == HASBIT(AircraftVehInfo(engine_id)->subtype, 0)) - && HASBIT(e->player_avail, _local_player) ) { - if (sel[1]==0) selected_id[1] = engine_id; + if (HASBIT(subtype, 0) == HASBIT(AircraftVehInfo(engine_id)->subtype, 0) && + HASBIT(e->player_avail, _local_player)) { + if (sel[1] == 0) selected_id[1] = engine_id; if (IS_INT_INSIDE(--pos2, -w->vscroll.cap, 0)) { DrawString(x2+62, y2+7, GetCustomEngineName(engine_id), sel[1]==0 ? 0xC : 0x10); DrawAircraftEngine(x2+29, y2+10, engine_id, SPRITE_PALETTE(PLAYER_SPRITE_COLOR(_local_player))); @@ -743,11 +743,17 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int break; } // end of aircraft } - } + + static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) { - static const StringID _vehicle_type_names[4] = {STR_019F_TRAIN, STR_019C_ROAD_VEHICLE, STR_019E_SHIP,STR_019D_AIRCRAFT}; + static const StringID _vehicle_type_names[] = { + STR_019F_TRAIN, + STR_019C_ROAD_VEHICLE, + STR_019E_SHIP, + STR_019D_AIRCRAFT + }; const Player *p = GetPlayer(_local_player); switch (e->event) { @@ -771,11 +777,11 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) _player_num_engines[i] = 0; } FOR_ALL_VEHICLES(vehicle) { - if ( vehicle->owner == _local_player ) { + if (vehicle->owner == _local_player) { if (vehicle->type == VEH_Aircraft && vehicle->subtype > 2) continue; // do not count the vehicles, that contains only 0 in all var - if (vehicle->engine_type == 0 && vehicle->spritenum == 0 ) continue; + if (vehicle->engine_type == 0 && vehicle->spritenum == 0) continue; if (vehicle->type != GetEngine(vehicle->engine_type)->type) continue; @@ -791,7 +797,7 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) // sets the selected left item to the top one if it's greater than the number of vehicles in the left side - if ( WP(w,replaceveh_d).count[0] <= sel[0] ) { + if (WP(w,replaceveh_d).count[0] <= sel[0]) { if (WP(w,replaceveh_d).count[0]) { sel[0] = 0; WP(w,replaceveh_d).sel_index[0] = 0; @@ -804,7 +810,7 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) } } - if ( WP(w,replaceveh_d).count[1] <= sel[1] ) { + if (WP(w,replaceveh_d).count[1] <= sel[1]) { if (WP(w,replaceveh_d).count[1]) { sel[1] = 0; WP(w,replaceveh_d).sel_index[1] = 0; @@ -821,21 +827,24 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) // Either list is empty // or Both lists have the same vehicle selected // or The right list (new replacement) has the existing replacement vehicle selected - if (selected_id[0] == -1 || selected_id[1] == -1 || + if (selected_id[0] == -1 || + selected_id[1] == -1 || selected_id[0] == selected_id[1] || - p->engine_replacement[selected_id[0]] == selected_id[1]) + p->engine_replacement[selected_id[0]] == selected_id[1]) { SETBIT(w->disabled_state, 4); - else + } else { CLRBIT(w->disabled_state, 4); + } // Disable the "Stop Replacing" button if: // The left list (existing vehicle) is empty // or The selected vehicle has no replacement set up if (selected_id[0] == -1 || - p->engine_replacement[selected_id[0]] == INVALID_ENGINE) + p->engine_replacement[selected_id[0]] == INVALID_ENGINE) { SETBIT(w->disabled_state, 6); - else + } else { CLRBIT(w->disabled_state, 6); + } // now the actual drawing of the window itself takes place SetDParam(0, _vehicle_type_names[WP(w, replaceveh_d).vehicletype - VEH_Train]); @@ -848,18 +857,17 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) DrawWindowWidgets(w); // sets up the string for the vehicle that is being replaced to - if ( selected_id[0] != -1 ) { - if (p->engine_replacement[selected_id[0]] == INVALID_ENGINE) + if (selected_id[0] != -1) { + if (p->engine_replacement[selected_id[0]] == INVALID_ENGINE) { SetDParam(0, STR_NOT_REPLACING); - else + } else { SetDParam(0, GetCustomEngineName(p->engine_replacement[selected_id[0]])); + } } else { SetDParam(0, STR_NOT_REPLACING_VEHICLE_SELECTED); } - - DrawString(145, (w->resize.step_height == 24 ? 67 : 87 ) + ( w->resize.step_height * w->vscroll.cap), STR_02BD, 0x10); - + DrawString(145, (w->resize.step_height == 24 ? 67 : 87) + w->resize.step_height * w->vscroll.cap, STR_02BD, 0x10); /* now we draw the two arrays according to what we just counted */ DrawEngineArrayInReplaceWindow(w, x, y, x2, y2, pos, pos2, sel[0], sel[1], selected_id[0], selected_id[1]); @@ -872,9 +880,8 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) byte i = 0; int offset = 0; - for ( i = 0 ; i < 2 ; i++) { - if ( i ) - offset = 228; + for (i = 0 ; i < 2 ; i++) { + if (i > 0) offset = 228; if (selected_id[i] != -1) { if (!(RailVehInfo(selected_id[i])->flags & RVI_WAGON)) { /* it's an engine */ @@ -1101,37 +1108,34 @@ void InitializeGUI(void) } /** Assigns an already open vehicle window to a new vehicle. -* Assigns an already open vehicle window to a new vehicle. If the vehicle got any sub window open (orders and so on) it will change owner too -* @param *from_v the current owner of the window -* @param *to_v the new owner of the window -*/ + * Assigns an already open vehicle window to a new vehicle. If the vehicle got + * any sub window open (orders and so on) it will change owner too. + * @param *from_v the current owner of the window + * @param *to_v the new owner of the window + */ void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v) { Window *w; w = FindWindowById(WC_VEHICLE_VIEW, from_v->index); - if (w != NULL) { w->window_number = to_v->index; - WP(w, vp_d).follow_vehicle = to_v->index; // tell the viewport to follow the new vehicle + WP(w, vp_d).follow_vehicle = to_v->index; SetWindowDirty(w); w = FindWindowById(WC_VEHICLE_ORDERS, from_v->index); - if (w != NULL) { w->window_number = to_v->index; SetWindowDirty(w); } w = FindWindowById(WC_VEHICLE_REFIT, from_v->index); - if (w != NULL) { w->window_number = to_v->index; SetWindowDirty(w); } w = FindWindowById(WC_VEHICLE_DETAILS, from_v->index); - if (w != NULL) { w->window_number = to_v->index; SetWindowDirty(w); diff --git a/water_cmd.c b/water_cmd.c index a820a1fbb..3a5c3924e 100644 --- a/water_cmd.c +++ b/water_cmd.c @@ -502,12 +502,12 @@ static void TileLoopWaterHelper(TileIndex tile, const TileIndexDiffC *offs) TileIndex target = TILE_ADD(tile, ToTileIndexDiff(offs[0])); // type of this tile mustn't be water already. - if (IsTileType(target, MP_WATER)) - return; + if (IsTileType(target, MP_WATER)) return; if (TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[1]))) != 0 || - TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[2]))) != 0) + TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[2]))) != 0) { return; + } if (TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[3]))) != 0 || TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[4]))) != 0) { @@ -639,8 +639,9 @@ void TileLoop_Water(TileIndex tile) if (IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1) && IS_INT_INSIDE(TileY(tile), 1, MapSizeY() - 3 + 1)) { - for(i=0; i!=4; i++) + for (i = 0; i != lengthof(_tile_loop_offs_array); i++) { TileLoopWaterHelper(tile, _tile_loop_offs_array[i]); + } } // _current_player can be changed by TileLoopWaterHelper.. reset it back // here @@ -650,15 +651,17 @@ void TileLoop_Water(TileIndex tile) if (TileX(tile) == 0 && IS_INT_INSIDE(TileY(tile), 1, MapSizeY() - 3 + 1)) //NE TileLoopWaterHelper(tile, _tile_loop_offs_array[2]); - if (TileX(tile) == (MapSizeX() - 2) && IS_INT_INSIDE(TileY(tile), 1, MapSizeY() - 3 + 1)) //SW + if (TileX(tile) == MapSizeX() - 2 && IS_INT_INSIDE(TileY(tile), 1, MapSizeY() - 3 + 1)) { //SW TileLoopWaterHelper(tile, _tile_loop_offs_array[0]); + } - if (TileY(tile) == 0 && IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1)) //NW + if (TileY(tile) == 0 && IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1)) { //NW TileLoopWaterHelper(tile, _tile_loop_offs_array[1]); + } - if (TileY(tile) == (MapSizeY() - 2) && IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1)) //SE + if (TileY(tile) == MapSizeY() - 2 && IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1)) { //SE TileLoopWaterHelper(tile, _tile_loop_offs_array[3]); - + } } @@ -27,8 +27,7 @@ static Point HandleScrollbarHittest(const Scrollbar *sb, int top, int bottom) if (count != 0) top += height * pos / count; if (cap > count) cap = count; - if (count != 0) - bottom -= (count - pos - cap) * height / count; + if (count != 0) bottom -= (count - pos - cap) * height / count; pt.x = top; pt.y = bottom - 1; @@ -139,12 +138,11 @@ int GetWidgetFromPos(const Window *w, int x, int y) // Go through the widgets and check if we find the widget that the coordinate is // inside. for (index = 0,wi = w->widget; wi->type != WWT_LAST; index++, wi++) { - if (wi->type == WWT_EMPTY || wi->type == WWT_FRAME) - continue; + if (wi->type == WWT_EMPTY || wi->type == WWT_FRAME) continue; if (x >= wi->left && x <= wi->right && y >= wi->top && y <= wi->bottom && !HASBIT(w->hidden_state,index)) { - found_index = index; + found_index = index; } } @@ -169,11 +167,12 @@ void DrawWindowWidgets(const Window *w) bool clicked = (cur_click & 1); if (dpi->left > (r.right=/*w->left + */wi->right) || - dpi->left + dpi->width <= (r.left=wi->left/* + w->left*/) || + dpi->left + dpi->width <= (r.left=wi->left/* + w->left*/) || dpi->top > (r.bottom=/*w->top +*/ wi->bottom) || dpi->top + dpi->height <= (r.top = /*w->top +*/ wi->top) || - (cur_hidden&1)) - continue; + cur_hidden & 1) { + continue; + } switch (wi->type & WWT_MASK) { case WWT_PANEL: /* WWT_IMGBTN */ @@ -182,8 +181,10 @@ void DrawWindowWidgets(const Window *w) DrawFrameRect(r.left, r.top, r.right, r.bottom, wi->color, (clicked) ? FR_LOWERED : 0); - if ((img = wi->unkA) != 0) { // has an image - if ((wi->type & WWT_MASK) == WWT_PANEL_2 && clicked) img++; // show diff image when clicked + img = wi->unkA; + if (img != 0) { // has an image + // show diff image when clicked + if ((wi->type & WWT_MASK) == WWT_PANEL_2 && clicked) img++; DrawSprite(img, r.left + 1 + clicked, r.top + 1 + clicked); } @@ -210,9 +211,8 @@ void DrawWindowWidgets(const Window *w) StringID str; DrawFrameRect(r.left, r.top, r.right, r.bottom, wi->color, FR_LOWERED | FR_DARKENED); - if ((str = wi->unkA) != 0) { - DrawString(r.left+2, r.top+1, str, 0); - } + str = wi->unkA; + if (str != 0) DrawString(r.left + 2, r.top + 1, str, 0); goto draw_default; } @@ -229,30 +229,30 @@ void DrawWindowWidgets(const Window *w) d = (wi->unkA >> 8); amt2 = (wi->bottom - wi->top + 1) / d; - color = _color_list[wi->color&0xF].window_color_bgb; + color = _color_list[wi->color & 0xF].window_color_bgb; x = r.left; - for(ctr=c; --ctr; ) { + for (ctr = c; ctr > 0; ctr--) { x += amt1; - GfxFillRect(x, r.top+1, x, r.bottom-1, color); + GfxFillRect(x, r.top + 1, x, r.bottom - 1, color); } x = r.top; - for(ctr=d; --ctr; ) { + for (ctr = d; ctr > 0; ctr--) { x += amt2; - GfxFillRect(r.left+1, x, r.right-1, x, color); + GfxFillRect(r.left + 1, x, r.right - 1, x, color); } color = _color_list[wi->color&0xF].window_color_1b; - x = r.left-1; - for(ctr=c; --ctr; ) { + x = r.left - 1; + for (ctr = c; ctr > 0; ctr--) { x += amt1; - GfxFillRect(x, r.top+1, x, r.bottom-1, color); + GfxFillRect(x, r.top + 1, x, r.bottom - 1, color); } - x = r.top-1; - for(ctr=d; --ctr; ) { + x = r.top - 1; + for (ctr = d; ctr > 0; ctr--) { x += amt2; GfxFillRect(r.left+1, x, r.right-1, x, color); } @@ -365,9 +365,7 @@ void DrawWindowWidgets(const Window *w) int c1,c2; int x2 = r.left; // by default the left side is the left side of the widget - if (wi->unkA != 0) { - x2 = DrawString(r.left+6, r.top, wi->unkA, 0); - } + if (wi->unkA != 0) x2 = DrawString(r.left + 6, r.top, wi->unkA, 0); c1 = _color_list[wi->color].window_color_1a; c2 = _color_list[wi->color].window_color_2; @@ -485,20 +483,20 @@ static void DropdownMenuWndProc(Window *w, WindowEvent *e) continue; } if (WP(w,dropdown_d).items[i] != 0) { - if (sel == 0) { - GfxFillRect(x+1, y, x+w->width-4, y + 9, 0); - } - DrawString(x+2, y, WP(w,dropdown_d).items[i], sel==0 ? 12 : 16); + if (sel == 0) GfxFillRect(x + 1, y, x + w->width - 4, y + 9, 0); + DrawString(x + 2, y, WP(w,dropdown_d).items[i], sel == 0 ? 12 : 16); if (HASBIT(w->disabled_state, i)) { - GfxFillRect(x, y, x+w->width-3, y + 9, PALETTE_MODIFIER_GREYOUT | - _color_list[_dropdown_menu_widgets[0].color].window_color_bga); + GfxFillRect(x, y, x + w->width - 3, y + 9, + PALETTE_MODIFIER_GREYOUT | _color_list[_dropdown_menu_widgets[0].color].window_color_bga + ); } } else { - int color_1 = _color_list[_dropdown_menu_widgets[0].color].window_color_1a; - int color_2 = _color_list[_dropdown_menu_widgets[0].color].window_color_2; - GfxFillRect(x+1, y+3, x+w->width-5, y+3, color_1); - GfxFillRect(x+1, y+4, x+w->width-5, y+4, color_2); + int c1 = _color_list[_dropdown_menu_widgets[0].color].window_color_1a; + int c2 = _color_list[_dropdown_menu_widgets[0].color].window_color_2; + + GfxFillRect(x + 1, y + 3, x + w->width - 5, y + 3, c1); + GfxFillRect(x + 1, y + 4, x + w->width - 5, y + 4, c2); } y += 10; sel--; @@ -536,12 +534,10 @@ static void DropdownMenuWndProc(Window *w, WindowEvent *e) if (!_left_button_clicked) { WP(w,dropdown_d).drag_mode = false; - if (item < 0) - return; + if (item < 0) return; WP(w,dropdown_d).click_delay = 2; } else { - if (item < 0) - return; + if (item < 0) return; } WP(w,dropdown_d).selected_index = item; @@ -573,25 +569,22 @@ void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int butt DeleteWindowById(WC_DROPDOWN_MENU, 0); w = FindWindowById(cls, num); - if (HASBIT(old_click_state, button)) - return; + if (HASBIT(old_click_state, button)) return; SETBIT(w->click_state, button); InvalidateWidget(w, button); - for (i = 0; strings[i] != INVALID_STRING_ID; i++); - if (i == 0) - return; + for (i = 0; strings[i] != INVALID_STRING_ID; i++) {} + if (i == 0) return; wi = &w->widget[button]; if (hidden_mask != 0) { - int j; + uint j; + for (j = 0; strings[j] != INVALID_STRING_ID; j++) { - if (HASBIT(hidden_mask, j)) { - i--; - } + if (HASBIT(hidden_mask, j)) i--; } } @@ -922,7 +922,6 @@ char *FiosBrowseTo(const FiosItem *item) sprintf(path, "%s\\", item->name); s = strrchr(path, '\\'); if (s[1] == '\0') s[0] = '\0'; // strip trailing slash - break; case FIOS_TYPE_FILE: @@ -146,13 +146,13 @@ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom) DrawPixelInfo bk; _cur_dpi = &bk; - for(w=_windows; w!=_last_window; w++) { + for (w = _windows; w != _last_window; w++) { if (right > w->left && bottom > w->top && left < w->left + w->width && top < w->top + w->height) { - DrawOverlappedWindow(w, left, top, right, bottom); - } + DrawOverlappedWindow(w, left, top, right, bottom); + } } } @@ -166,7 +166,6 @@ void DrawOverlappedWindow(Window *w, int left, int top, int right, int bottom) bottom > v->top && left < v->left + v->width && top < v->top + v->height) { - if (left < (x=v->left)) { DrawOverlappedWindow(w, left, top, x, bottom); DrawOverlappedWindow(w, x, top, right, bottom); @@ -230,8 +229,7 @@ void DeleteWindow(Window *w) Window *v; int count; - if (w == NULL) - return; + if (w == NULL) return; if (_thd.place_mode != 0 && _thd.window_class == w->window_class && _thd.window_number == w->window_number) { ResetObjectToPlace(); @@ -264,11 +262,8 @@ Window *FindWindowById(WindowClass cls, WindowNumber number) { Window *w; - for(w=_windows; w!=_last_window; w++) { - if (w->window_class == cls && - w->window_number == number) { - return w; - } + for (w = _windows; w != _last_window; w++) { + if (w->window_class == cls && w->window_number == number) return w; } return NULL; @@ -282,12 +277,14 @@ void DeleteWindowById(WindowClass cls, WindowNumber number) void DeleteWindowByClass(WindowClass cls) { Window *w; + for (w = _windows; w != _last_window;) { if (w->window_class == cls) { DeleteWindow(w); w = _windows; - } else + } else { w++; + } } } @@ -323,12 +320,10 @@ Window *BringWindowToFront(Window *w) v = _last_window; do { - if (--v < _windows) - return w; + if (--v < _windows) return w; } while (IsVitalWindow(v)); - if (w == v) - return w; + if (w == v) return w; assert(w < v); @@ -351,9 +346,11 @@ Window *BringWindowToFront(Window *w) static Window *FindDeletableWindow(void) { Window *w; + for (w = _windows; w < endof(_windows); w++) { - if (w->window_class != WC_MAIN_WINDOW && !IsVitalWindow(w) && !(w->flags4 & WF_STICKY) ) - return w; + if (w->window_class != WC_MAIN_WINDOW && !IsVitalWindow(w) && !(w->flags4 & WF_STICKY)) { + return w; + } } return NULL; } @@ -367,11 +364,10 @@ static Window *FindDeletableWindow(void) static Window *ForceFindDeletableWindow(void) { Window *w; + for (w = _windows;; w++) { assert(w < _last_window); - - if (w->window_class != WC_MAIN_WINDOW && !IsVitalWindow(w)) - return w; + if (w->window_class != WC_MAIN_WINDOW && !IsVitalWindow(w)) return w; } } @@ -386,17 +382,16 @@ void AssignWidgetToWindow(Window *w, const Widget *widget) w->original_widget = widget; if (widget != NULL) { - const Widget *wi = widget; uint index = 1; - while (wi->type != WWT_LAST) { - wi++; - index++; - } + const Widget* wi; + + for (wi = widget; wi->type != WWT_LAST; wi++) index++; - w->widget = realloc(w->widget, sizeof(Widget) * index); - memcpy(w->widget, widget, sizeof(Widget) * index); - } else + w->widget = realloc(w->widget, sizeof(*w->widget) * index); + memcpy(w->widget, widget, sizeof(*w->widget) * index); + } else { w->widget = NULL; + } } /** Open a new window. If there is no space for a new window, close an open @@ -422,8 +417,7 @@ Window *AllocateWindow( if (w >= endof(_windows)) { w = FindDeletableWindow(); - if (w == NULL) // no window found, force it! - w = ForceFindDeletableWindow(); + if (w == NULL) w = ForceFindDeletableWindow(); DeleteWindow(w); w = _last_window; @@ -503,10 +497,9 @@ Window *AllocateWindowAutoPlace2( } x = w->left; - if (x > _screen.width - width) - x = (_screen.width - width) - 20; + if (x > _screen.width - width) x = _screen.width - width - 20; - return AllocateWindow(x+10,w->top+10,width,height,proc,cls,widget); + return AllocateWindow(x + 10, w->top + 10, width, height, proc, cls, widget); } @@ -531,15 +524,15 @@ static bool IsGoodAutoPlace1(int left, int top) return false; // Make sure it is not obscured by any window. - for(w=_windows; w!=_last_window; w++) { - if (w->window_class == WC_MAIN_WINDOW) - continue; + for (w = _windows; w != _last_window; w++) { + if (w->window_class == WC_MAIN_WINDOW) continue; if (right > w->left && - w->left + w->width > left && + w->left + w->width > left && bottom > w->top && - w->top + w->height > top) - return false; + w->top + w->height > top) { + return false; + } } return true; @@ -561,15 +554,15 @@ static bool IsGoodAutoPlace2(int left, int top) return false; // Make sure it is not obscured by any window. - for(w=_windows; w!=_last_window; w++) { - if (w->window_class == WC_MAIN_WINDOW) - continue; + for (w = _windows; w != _last_window; w++) { + if (w->window_class == WC_MAIN_WINDOW) continue; if (left + width > w->left && - w->left + w->width > left && + w->left + w->width > left && top + height > w->top && - w->top + w->height > top) - return false; + w->top + w->height > top) { + return false; + } } return true; @@ -585,9 +578,8 @@ static Point GetAutoPlacePosition(int width, int height) if (IsGoodAutoPlace1(0, 24)) goto ok_pos; - for(w=_windows; w!=_last_window; w++) { - if (w->window_class == WC_MAIN_WINDOW) - continue; + for (w = _windows; w != _last_window; w++) { + if (w->window_class == WC_MAIN_WINDOW) continue; if (IsGoodAutoPlace1(w->left+w->width+2,w->top)) goto ok_pos; if (IsGoodAutoPlace1(w->left- width-2,w->top)) goto ok_pos; @@ -599,9 +591,8 @@ static Point GetAutoPlacePosition(int width, int height) if (IsGoodAutoPlace1(w->left+w->width-width,w->top- height-2)) goto ok_pos; } - for(w=_windows; w!=_last_window; w++) { - if (w->window_class == WC_MAIN_WINDOW) - continue; + for (w = _windows; w != _last_window; w++) { + if (w->window_class == WC_MAIN_WINDOW) continue; if (IsGoodAutoPlace2(w->left+w->width+2,w->top)) goto ok_pos; if (IsGoodAutoPlace2(w->left- width-2,w->top)) goto ok_pos; @@ -613,7 +604,7 @@ static Point GetAutoPlacePosition(int width, int height) int left=0,top=24; restart:; - for(w=_windows; w!=_last_window; w++) { + for (w = _windows; w != _last_window; w++) { if (w->left == left && w->top == top) { left += 5; top += 5; @@ -647,8 +638,7 @@ Window *AllocateWindowDescFront(const WindowDesc *desc, int value) { Window *w; - if (BringWindowToFrontById(desc->cls, value)) - return NULL; + if (BringWindowToFrontById(desc->cls, value)) return NULL; w = AllocateWindowDesc(desc); w->window_number = value; return w; @@ -696,11 +686,12 @@ Window *FindWindowFromPt(int x, int y) { Window *w; - for(w=_last_window; w != _windows;) { + for (w = _last_window; w != _windows;) { --w; if (IS_INSIDE_1D(x, w->left, w->width) && - IS_INSIDE_1D(y, w->top, w->height)) - return w; + IS_INSIDE_1D(y, w->top, w->height)) { + return w; + } } return NULL; @@ -755,8 +746,7 @@ static void DecreaseWindowCounters(void) if (w->flags4&WF_TIMEOUT_MASK && !(--w->flags4&WF_TIMEOUT_MASK)) { CallWindowEventNP(w, WE_TIMEOUT); - if (w->desc_flags & WDF_UNCLICK_BUTTONS) - UnclickWindowButtons(w); + if (w->desc_flags & WDF_UNCLICK_BUTTONS) UnclickWindowButtons(w); } } } @@ -771,11 +761,10 @@ static void HandlePlacePresize(void) Window *w; WindowEvent e; - if (_special_mouse_mode != WSM_PRESIZE) - return; + if (_special_mouse_mode != WSM_PRESIZE) return; - if ((w = GetCallbackWnd()) == NULL) - return; + w = GetCallbackWnd(); + if (w == NULL) return; e.place.pt = GetTileBelowCursor(); if (e.place.pt.x == -1) { @@ -792,17 +781,15 @@ static bool HandleDragDrop(void) Window *w; WindowEvent e; - if (_special_mouse_mode != WSM_DRAGDROP) - return true; + if (_special_mouse_mode != WSM_DRAGDROP) return true; - if (_left_button_down) - return false; + if (_left_button_down) return false; w = GetCallbackWnd(); ResetObjectToPlace(); - if (w) { + if (w != NULL) { // send an event in client coordinates. e.event = WE_DRAGDROP; e.dragdrop.pt.x = _cursor.pos.x - w->left; @@ -818,8 +805,7 @@ static bool HandlePopupMenu(void) Window *w; WindowEvent e; - if (!_popup_menu_active) - return true; + if (!_popup_menu_active) return true; w = FindWindowById(WC_TOOLBAR_MENU, 0); if (w == NULL) { @@ -850,16 +836,15 @@ static bool HandleMouseOver(void) w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y); // We changed window, put a MOUSEOVER event to the last window - if (last_w && last_w != w) { + if (last_w != NULL && last_w != w) { e.event = WE_MOUSEOVER; e.mouseover.pt.x = -1; e.mouseover.pt.y = -1; - if (last_w->wndproc) - last_w->wndproc(last_w, &e); + if (last_w->wndproc) last_w->wndproc(last_w, &e); } last_w = w; - if (w) { + if (w != NULL) { // send an event in client coordinates. e.event = WE_MOUSEOVER; e.mouseover.pt.x = _cursor.pos.x - w->left; @@ -881,8 +866,7 @@ static bool HandleWindowDragging(void) { Window *w; // Get out immediately if no window is being dragged at all. - if (!_dragging_window) - return true; + if (!_dragging_window) return true; // Otherwise find the window... for (w = _windows; w != _last_window; w++) { @@ -998,12 +982,13 @@ static bool HandleWindowDragging(void) } else { if (nx + t->left > v->left - 13 && nx + t->right < v_right + 13) { - if (w->top >= v_bottom) + if (w->top >= v_bottom) { ny = v_bottom; - else if (w->left < nx) + } else if (w->left < nx) { nx = v->left - 13 - t->left; - else + } else { nx = v_right + 13 - t->right; + } } } } @@ -1033,11 +1018,9 @@ static bool HandleWindowDragging(void) y = _cursor.pos.y - _drag_delta.y; /* X and Y has to go by step.. calculate it */ - if (w->resize.step_width > 1) - x = x - (x % (int)w->resize.step_width); + if (w->resize.step_width > 1) x = x - (x % w->resize.step_width); - if (w->resize.step_height > 1) - y = y - (y % (int)w->resize.step_height); + if (w->resize.step_height > 1) y = y - (y % w->resize.step_height); /* Check if we don't go below the minimum set size */ if ((int)w->width + x < (int)w->resize.width) @@ -1046,8 +1029,7 @@ static bool HandleWindowDragging(void) y = w->resize.height - w->height; /* Window already on size */ - if (x == 0 && y == 0) - return false; + if (x == 0 && y == 0) return false; /* Now find the new cursor pos.. this is NOT _cursor, because we move in steps. */ @@ -1087,10 +1069,8 @@ static bool HandleWindowDragging(void) } /* We resized at least 1 widget, so let's rezise the window totally */ - if (resize_width) - w->width = x + w->width; - if (resize_height) - w->height = y + w->height; + if (resize_width) w->width = x + w->width; + if (resize_height) w->height = y + w->height; } e.event = WE_RESIZE; @@ -1145,11 +1125,10 @@ static bool HandleScrollbarScrolling(void) Scrollbar *sb; // Get out quickly if no item is being scrolled - if (!_scrolling_scrollbar) - return true; + if (!_scrolling_scrollbar) return true; // Find the scrolling window - for(w=_windows; w != _last_window; w++) { + for (w = _windows; w != _last_window; w++) { if (w->flags4 & WF_SCROLL_MIDDLE) { // Abort if no button is clicked any more. if (!_left_button_down) { @@ -1189,8 +1168,7 @@ static bool HandleViewportScroll(void) ViewPort *vp; int dx,dy, x, y, sub; - if (!_scrolling_viewport) - return true; + if (!_scrolling_viewport) return true; if (!_right_button_down) { stop_capt:; @@ -1249,10 +1227,22 @@ stop_capt:; hy = (w->widget[4].bottom - w->widget[4].top ) / 2; hvx = hx * -4 + hy * 8; hvy = hx * 4 + hy * 8; - if (x < -hvx) { x = -hvx; sub = 0; } - if (x > (int)MapMaxX() * 16 - hvx) { x = MapMaxX() * 16 - hvx; sub = 0; } - if (y < -hvy) { y = -hvy; sub = 0; } - if (y > (int)MapMaxY() * 16 - hvy) { y = MapMaxY() * 16 - hvy; sub = 0; } + if (x < -hvx) { + x = -hvx; + sub = 0; + } + if (x > (int)MapMaxX() * 16 - hvx) { + x = MapMaxX() * 16 - hvx; + sub = 0; + } + if (y < -hvy) { + y = -hvy; + sub = 0; + } + if (y > (int)MapMaxY() * 16 - hvy) { + y = MapMaxY() * 16 - hvy; + sub = 0; + } WP(w,smallmap_d).scroll_x = x; WP(w,smallmap_d).scroll_y = y; @@ -1269,20 +1259,27 @@ static Window *MaybeBringWindowToFront(Window *w) { Window *u; - if (w->window_class == WC_MAIN_WINDOW || IsVitalWindow(w) || - w->window_class == WC_TOOLTIPS || w->window_class == WC_DROPDOWN_MENU) - return w; + if (w->window_class == WC_MAIN_WINDOW || + IsVitalWindow(w) || + w->window_class == WC_TOOLTIPS || + w->window_class == WC_DROPDOWN_MENU) { + return w; + } for (u = w; ++u != _last_window;) { - if (u->window_class == WC_MAIN_WINDOW || IsVitalWindow(u) || - u->window_class == WC_TOOLTIPS || u->window_class == WC_DROPDOWN_MENU) - continue; + if (u->window_class == WC_MAIN_WINDOW || + IsVitalWindow(u) || + u->window_class == WC_TOOLTIPS || + u->window_class == WC_DROPDOWN_MENU) { + continue; + } if (w->left + w->width <= u->left || u->left + u->width <= w->left || w->top + w->height <= u->top || - u->top + u->height <= w->top) - continue; + u->top + u->height <= w->top) { + continue; + } return BringWindowToFront(w); } @@ -1337,18 +1334,26 @@ static void HandleKeypress(uint32 key) we.keypress.cont = true; // check if we have a query string window open before allowing hotkeys - if(FindWindowById(WC_QUERY_STRING, 0)!=NULL || FindWindowById(WC_SEND_NETWORK_MSG, 0)!=NULL || FindWindowById(WC_CONSOLE, 0)!=NULL || FindWindowById(WC_SAVELOAD, 0)!=NULL) + if (FindWindowById(WC_QUERY_STRING, 0) != NULL || + FindWindowById(WC_SEND_NETWORK_MSG, 0) != NULL || + FindWindowById(WC_CONSOLE, 0) != NULL || + FindWindowById(WC_SAVELOAD, 0) != NULL) { query_open = true; + } // Call the event, start with the uppermost window. - for(w=_last_window; w != _windows;) { + for (w = _last_window; w != _windows;) { --w; // if a query window is open, only call the event for certain window types - if(query_open && w->window_class!=WC_QUERY_STRING && w->window_class!=WC_SEND_NETWORK_MSG && w->window_class!=WC_CONSOLE && w->window_class!=WC_SAVELOAD) + if (query_open && + w->window_class != WC_QUERY_STRING && + w->window_class != WC_SEND_NETWORK_MSG && + w->window_class != WC_CONSOLE && + w->window_class != WC_SAVELOAD) { continue; + } w->wndproc(w, &we); - if (!we.keypress.cont) - break; + if (!we.keypress.cont) break; } if (we.keypress.cont) { @@ -1370,26 +1375,13 @@ static void MouseLoop(int click, int mousewheel) DecreaseWindowCounters(); HandlePlacePresize(); UpdateTileSelection(); - if (!VpHandlePlaceSizingDrag()) - return; - - if (!HandleDragDrop()) - return; - - if (!HandlePopupMenu()) - return; - - if (!HandleWindowDragging()) - return; - - if (!HandleScrollbarScrolling()) - return; - - if (!HandleViewportScroll()) - return; - - if (!HandleMouseOver()) - return; + if (!VpHandlePlaceSizingDrag()) return; + if (!HandleDragDrop()) return; + if (!HandlePopupMenu()) return; + if (!HandleWindowDragging()) return; + if (!HandleScrollbarScrolling()) return; + if (!HandleViewportScroll()) return; + if (!HandleMouseOver()) return; x = _cursor.pos.x; y = _cursor.pos.y; @@ -1422,17 +1414,18 @@ static void MouseLoop(int click, int mousewheel) } w = FindWindowFromPt(x, y); - if (w == NULL) - return; + if (w == NULL) return; w = MaybeBringWindowToFront(w); vp = IsPtInWindowViewport(w, x, y); if (vp != NULL) { - if (_game_mode == GM_MENU) - return; + if (_game_mode == GM_MENU) return; // only allow zooming in-out in main window, or in viewports - if ( mousewheel && !(w->flags4 & WF_DISABLE_VP_SCROLL) && - (w->window_class == WC_MAIN_WINDOW || w->window_class == WC_EXTRA_VIEW_PORT) ) { + if (mousewheel && + !(w->flags4 & WF_DISABLE_VP_SCROLL) && ( + w->window_class == WC_MAIN_WINDOW || + w->window_class == WC_EXTRA_VIEW_PORT + )) { ZoomInOrOutToCursorWindow(mousewheel < 0,w); } @@ -1509,9 +1502,9 @@ void UpdateWindows(void) Window *w; int t; - - if ((t=_we4_timer+1) >= 100) { - for(w = _last_window; w != _windows;) { + t = _we4_timer + 1; + if (t >= 100) { + for (w = _last_window; w != _windows;) { w--; CallWindowEventNP(w, WE_4); } @@ -1519,7 +1512,7 @@ void UpdateWindows(void) } _we4_timer = t; - for(w = _last_window; w != _windows;) { + for (w = _last_window; w != _windows;) { w--; if (w->flags4 & WF_WHITE_BORDER_MASK) { w->flags4 -= WF_WHITE_BORDER_ONE; @@ -1531,9 +1524,8 @@ void UpdateWindows(void) DrawDirtyBlocks(); - for(w = _windows; w!=_last_window; w++) { - if (w->viewport != NULL) - UpdateViewportPosition(w); + for (w = _windows; w != _last_window; w++) { + if (w->viewport != NULL) UpdateViewportPosition(w); } DrawTextMessage(); // Redraw mouse cursor in case it was hidden @@ -1546,8 +1538,10 @@ int GetMenuItemIndex(const Window *w, int x, int y) if ((x -= w->left) >= 0 && x < w->width && (y -= w->top + 1) >= 0) { y /= 10; - if (y < WP(w,menu_d).item_count && !HASBIT(WP(w,menu_d).disabled_items, y)) + if (y < WP(w, const menu_d).item_count && + !HASBIT(WP(w, const menu_d).disabled_items, y)) { return y; + } } return -1; } @@ -1556,9 +1550,8 @@ void InvalidateWindow(byte cls, WindowNumber number) { Window *w; - for(w=_windows; w!=_last_window; w++) { - if (w->window_class==cls && w->window_number==number) - SetWindowDirty(w); + for (w = _windows; w != _last_window; w++) { + if (w->window_class == cls && w->window_number == number) SetWindowDirty(w); } } @@ -1576,8 +1569,8 @@ void InvalidateWindowWidget(byte cls, WindowNumber number, byte widget_index) { const Window* w; - for(w=_windows; w!=_last_window; w++) { - if (w->window_class==cls && w->window_number==number) { + for (w = _windows; w != _last_window; w++) { + if (w->window_class == cls && w->window_number == number) { InvalidateWidget(w, widget_index); } } @@ -1586,9 +1579,9 @@ void InvalidateWindowWidget(byte cls, WindowNumber number, byte widget_index) void InvalidateWindowClasses(byte cls) { const Window* w; - for(w=_windows; w!=_last_window; w++) { - if (w->window_class==cls) - SetWindowDirty(w); + + for (w = _windows; w != _last_window; w++) { + if (w->window_class == cls) SetWindowDirty(w); } } @@ -1596,7 +1589,8 @@ void InvalidateWindowClasses(byte cls) void CallWindowTickEvent(void) { Window *w; - for(w=_last_window; w != _windows;) { + + for (w = _last_window; w != _windows;) { --w; CallWindowEventNP(w, WE_TICK); } @@ -1605,7 +1599,8 @@ void CallWindowTickEvent(void) void DeleteNonVitalWindows(void) { Window *w; - for(w=_windows; w!=_last_window;) { + + for (w = _windows; w != _last_window;) { if (w->window_class != WC_MAIN_WINDOW && w->window_class != WC_SELECT_GAME && w->window_class != WC_MAIN_TOOLBAR && @@ -1629,6 +1624,7 @@ void DeleteNonVitalWindows(void) void DeleteAllNonVitalWindows(void) { Window *w; + // Delete every window except for stickied ones DeleteNonVitalWindows(); // Delete all sticked windows @@ -1668,7 +1664,7 @@ void RelocateAllWindows(int neww, int newh) { Window *w; - for(w=_windows; w!= _last_window ;w++) { + for (w = _windows; w != _last_window; w++) { int left, top; if (w->window_class == WC_MAIN_WINDOW) { @@ -1704,7 +1700,7 @@ void RelocateAllWindows(int neww, int newh) if (top + (w->height>>1) >= newh) top = newh - w->height; } - if (w->viewport) { + if (w->viewport != NULL) { w->viewport->left += left - w->left; w->viewport->top += top - w->top; } |