diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -220,11 +220,9 @@ void Industry::PostDestructor(size_t ind static void IndustryDrawSugarMine(const TileInfo *ti) { - const DrawIndustryAnimationStruct *d; - if (!IsIndustryCompleted(ti->tile)) return; - d = &_draw_industry_spec1[GetIndustryAnimationState(ti->tile)]; + const DrawIndustryAnimationStruct *d = &_draw_industry_spec1[GetIndustryAnimationState(ti->tile)]; AddChildSpriteScreen(SPR_IT_SUGAR_MINE_SIEVE + d->image_1, PAL_NONE, d->x, 0); @@ -264,9 +262,7 @@ static void IndustryDrawBubbleGenerator( static void IndustryDrawToyFactory(const TileInfo *ti) { - const DrawIndustryAnimationStruct *d; - - d = &_industry_anim_offs_toys[GetIndustryAnimationState(ti->tile)]; + const DrawIndustryAnimationStruct *d = &_industry_anim_offs_toys[GetIndustryAnimationState(ti->tile)]; if (d->image_1 != 0xFF) { AddChildSpriteScreen(SPR_IT_TOY_FACTORY_CLAY, PAL_NONE, d->x, 96 + d->image_1); @@ -309,7 +305,6 @@ static void DrawTile_Industry(TileInfo * IndustryGfx gfx = GetIndustryGfx(ti->tile); Industry *ind = Industry::GetByTile(ti->tile); const IndustryTileSpec *indts = GetIndustryTileSpec(gfx); - const DrawBuildingsTileStruct *dits; /* Retrieve pointer to the draw industry tile struct */ if (gfx >= NEW_INDUSTRYTILEOFFSET) { @@ -330,7 +325,7 @@ static void DrawTile_Industry(TileInfo * } } - dits = &_industry_draw_tile_data[gfx << 2 | (indts->anim_state ? + const DrawBuildingsTileStruct *dits = &_industry_draw_tile_data[gfx << 2 | (indts->anim_state ? GetIndustryAnimationState(ti->tile) & INDUSTRY_COMPLETED : GetIndustryConstructionStage(ti->tile))]; @@ -534,7 +529,6 @@ static void TransportIndustryGoods(TileI static void AnimateTile_Industry(TileIndex tile) { - byte m; IndustryGfx gfx = GetIndustryGfx(tile); if (GetIndustryTileSpec(gfx)->animation_info != 0xFFFF) { @@ -545,7 +539,7 @@ static void AnimateTile_Industry(TileInd switch (gfx) { case GFX_SUGAR_MINE_SIEVE: if ((_tick_counter & 1) == 0) { - m = GetIndustryAnimationState(tile) + 1; + byte m = GetIndustryAnimationState(tile) + 1; switch (m & 7) { case 2: SndPlayTileFx(SND_2D_RIP_2, tile); break; @@ -564,7 +558,7 @@ static void AnimateTile_Industry(TileInd case GFX_TOFFEE_QUARY: if ((_tick_counter & 3) == 0) { - m = GetIndustryAnimationState(tile); + byte m = GetIndustryAnimationState(tile); if (_industry_anim_offs_toffee[m] == 0xFF) { SndPlayTileFx(SND_30_CARTOON_SOUND, tile); @@ -582,7 +576,7 @@ static void AnimateTile_Industry(TileInd case GFX_BUBBLE_CATCHER: if ((_tick_counter & 1) == 0) { - m = GetIndustryAnimationState(tile); + byte m = GetIndustryAnimationState(tile); if (++m >= 40) { m = 0; @@ -597,7 +591,7 @@ static void AnimateTile_Industry(TileInd /* Sparks on a coal plant */ case GFX_POWERPLANT_SPARKS: if ((_tick_counter & 3) == 0) { - m = GetIndustryAnimationState(tile); + byte m = GetIndustryAnimationState(tile); if (m == 6) { SetIndustryAnimationState(tile, 0); DeleteAnimatedTile(tile); @@ -610,7 +604,7 @@ static void AnimateTile_Industry(TileInd case GFX_TOY_FACTORY: if ((_tick_counter & 1) == 0) { - m = GetIndustryAnimationState(tile) + 1; + byte m = GetIndustryAnimationState(tile) + 1; switch (m) { case 1: SndPlayTileFx(SND_2C_MACHINERY, tile); break; @@ -653,7 +647,7 @@ static void AnimateTile_Industry(TileInd bool b = Chance16(1, 7); IndustryGfx gfx = GetIndustryGfx(tile); - m = GetIndustryAnimationState(tile) + 1; + byte m = GetIndustryAnimationState(tile) + 1; if (m == 4 && (m = 0, ++gfx) == GFX_OILWELL_ANIMATED_3 + 1 && (gfx = GFX_OILWELL_ANIMATED_1, b)) { SetIndustryGfx(tile, GFX_OILWELL_NOT_ANIMATED); SetIndustryConstructionStage(tile, 3); @@ -675,7 +669,7 @@ static void AnimateTile_Industry(TileInd if (state < 0x1A0) { if (state < 0x20 || state >= 0x180) { - m = GetIndustryAnimationState(tile); + byte m = GetIndustryAnimationState(tile); if (!(m & 0x40)) { SetIndustryAnimationState(tile, m | 0x40); SndPlayTileFx(SND_0B_MINING_MACHINERY, tile); @@ -684,16 +678,15 @@ static void AnimateTile_Industry(TileInd } else { if (state & 3) return; } - m = (GetIndustryAnimationState(tile) + 1) | 0x40; + byte m = (GetIndustryAnimationState(tile) + 1) | 0x40; if (m > 0xC2) m = 0xC0; SetIndustryAnimationState(tile, m); MarkTileDirtyByTile(tile); } else if (state >= 0x200 && state < 0x3A0) { - int i; - i = (state < 0x220 || state >= 0x380) ? 7 : 3; + int i = (state < 0x220 || state >= 0x380) ? 7 : 3; if (state & i) return; - m = (GetIndustryAnimationState(tile) & 0xBF) - 1; + byte m = (GetIndustryAnimationState(tile) & 0xBF) - 1; if (m < 0x80) m = 0x82; SetIndustryAnimationState(tile, m); MarkTileDirtyByTile(tile); @@ -714,14 +707,12 @@ static void CreateChimneySmoke(TileIndex static void MakeIndustryTileBigger(TileIndex tile) { byte cnt = GetIndustryConstructionCounter(tile) + 1; - byte stage; - if (cnt != 4) { SetIndustryConstructionCounter(tile, cnt); return; } - stage = GetIndustryConstructionStage(tile) + 1; + byte stage = GetIndustryConstructionStage(tile) + 1; SetIndustryConstructionCounter(tile, 0); SetIndustryConstructionStage(tile, stage); StartStopIndustryTileAnimation(tile, IAT_CONSTRUCTION_STATE_CHANGE); @@ -796,9 +787,6 @@ static void TileLoopIndustry_BubbleGener static void TileLoop_Industry(TileIndex tile) { - IndustryGfx newgfx; - IndustryGfx gfx; - if (IsIndustryTileOnWater(tile)) TileLoop_Water(tile); TriggerIndustryTile(tile, INDTILE_TRIGGER_TILE_LOOP); @@ -814,7 +802,7 @@ static void TileLoop_Industry(TileIndex if (StartStopIndustryTileAnimation(tile, IAT_TILELOOP)) return; - newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_next; + IndustryGfx newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_next; if (newgfx != INDUSTRYTILE_NOANIM) { ResetIndustryConstructionStage(tile); SetIndustryGfx(tile, newgfx); @@ -822,8 +810,7 @@ static void TileLoop_Industry(TileIndex return; } - gfx = GetIndustryGfx(tile); - + IndustryGfx gfx = GetIndustryGfx(tile); switch (gfx) { case GFX_COAL_MINE_TOWER_NOT_ANIMATED: case GFX_COPPER_MINE_TOWER_NOT_ANIMATED: @@ -961,22 +948,15 @@ static void SetupFarmFieldFence(TileInde static void PlantFarmField(TileIndex tile, IndustryID industry) { - uint size_x, size_y; - uint32 r; - uint count; - uint counter; - uint field_type; - int type; - if (_settings_game.game_creation.landscape == LT_ARCTIC) { if (GetTileZ(tile) + TILE_HEIGHT * 2 >= GetSnowLine()) return; } /* determine field size */ - r = (Random() & 0x303) + 0x404; + uint32 r = (Random() & 0x303) + 0x404; if (_settings_game.game_creation.landscape == LT_ARCTIC) r += 0x404; - size_x = GB(r, 0, 8); - size_y = GB(r, 8, 8); + uint size_x = GB(r, 0, 8); + uint size_y = GB(r, 8, 8); /* offset tile to match size */ tile -= TileDiffXY(size_x / 2, size_y / 2); @@ -984,7 +964,7 @@ static void PlantFarmField(TileIndex til if (TileX(tile) + size_x >= MapSizeX() || TileY(tile) + size_y >= MapSizeY()) return; /* check the amount of bad tiles */ - count = 0; + uint count = 0; TILE_LOOP(cur_tile, size_x, size_y, tile) { assert(cur_tile < MapSize()); count += IsBadFarmFieldTile(cur_tile); @@ -993,8 +973,8 @@ static void PlantFarmField(TileIndex til /* determine type of field */ r = Random(); - counter = GB(r, 5, 3); - field_type = GB(r, 8, 8) * 9 >> 8; + uint counter = GB(r, 5, 3); + uint field_type = GB(r, 8, 8) * 9 >> 8; /* make field */ TILE_LOOP(cur_tile, size_x, size_y, tile) { @@ -1006,7 +986,7 @@ static void PlantFarmField(TileIndex til } } - type = 3; + int type = 3; if (_settings_game.game_creation.landscape != LT_ARCTIC && _settings_game.game_creation.landscape != LT_TROPIC) { type = _plantfarmfield_type[Random() & 0xF]; } @@ -1069,12 +1049,12 @@ static void ChopLumberMillTrees(Industry static void ProduceIndustryGoods(Industry *i) { - uint32 r; - uint num; const IndustrySpec *indsp = GetIndustrySpec(i->type); /* play a sound? */ if ((i->counter & 0x3F) == 0) { + uint32 r; + uint num; if (Chance16R(1, 14, r) && (num = indsp->number_of_sounds) != 0) { SndPlayTileFx( (SoundFx)(indsp->random_sounds[((r >> 16) * num) >> 16]), @@ -1118,8 +1098,6 @@ static void ProduceIndustryGoods(Industr void OnTick_Industry() { - Industry *i; - if (_industry_sound_ctr != 0) { _industry_sound_ctr++; @@ -1133,6 +1111,7 @@ void OnTick_Industry() if (_game_mode == GM_EDITOR) return; + Industry *i; FOR_ALL_INDUSTRIES(i) { ProduceIndustryGoods(i); } @@ -1414,18 +1393,15 @@ static CommandCost CheckIfIndustryIsAllo static bool CheckCanTerraformSurroundingTiles(TileIndex tile, uint height, int internal) { - int size_x, size_y; - uint curh; - - size_x = 2; - size_y = 2; + int size_x = 2; + int size_y = 2; /* Check if we don't leave the map */ if (TileX(tile) == 0 || TileY(tile) == 0 || GetTileType(tile) == MP_VOID) return false; tile += TileDiffXY(-1, -1); TILE_LOOP(tile_walk, size_x, size_y, tile) { - curh = TileHeight(tile_walk); + uint curh = TileHeight(tile_walk); /* Is the tile clear? */ if ((GetTileType(tile_walk) != MP_CLEAR) && (GetTileType(tile_walk) != MP_TREES)) return false; @@ -1454,9 +1430,6 @@ static bool CheckIfCanLevelIndustryPlatf const int MKEND = -0x80; // used for last element in an IndustryTileTable (see build_industry.h) int max_x = 0; int max_y = 0; - TileIndex cur_tile; - uint size_x, size_y; - uint h, curh; /* Finds dimensions of largest variant of this industry */ do { @@ -1466,14 +1439,14 @@ static bool CheckIfCanLevelIndustryPlatf } while ((++it)->ti.x != MKEND); /* Remember level height */ - h = TileHeight(tile); + uint h = TileHeight(tile); if (TileX(tile) <= 1 || TileY(tile) <= 1) return false; /* Check that all tiles in area and surrounding are clear * this determines that there are no obstructing items */ - cur_tile = tile + TileDiffXY(-1, -1); - size_x = max_x + 4; - size_y = max_y + 4; + TileIndex cur_tile = tile + TileDiffXY(-1, -1); + uint size_x = max_x + 4; + uint size_y = max_y + 4; /* Check if we don't leave the map */ if (TileX(cur_tile) + size_x >= MapMaxX() || TileY(cur_tile) + size_y >= MapMaxY()) return false; @@ -1483,7 +1456,7 @@ static bool CheckIfCanLevelIndustryPlatf Backup cur_company(_current_company, OWNER_TOWN, FILE_LINE); TILE_LOOP(tile_walk, size_x, size_y, cur_tile) { - curh = TileHeight(tile_walk); + uint curh = TileHeight(tile_walk); if (curh != h) { /* This tile needs terraforming. Check if we can do that without * damaging the surroundings too much. */ @@ -1503,7 +1476,7 @@ static bool CheckIfCanLevelIndustryPlatf if (flags & DC_EXEC) { /* Terraform the land under the industry */ TILE_LOOP(tile_walk, size_x, size_y, cur_tile) { - curh = TileHeight(tile_walk); + uint curh = TileHeight(tile_walk); while (curh != h) { /* We give the terraforming for free here, because we can't calculate * exact cost in the test-round, and as we all know, that will cause @@ -1980,15 +1953,13 @@ struct ProbabilityHelper { */ static void MaybeNewIndustry() { - Industry *ind; // will receive the industry's creation pointer - IndustryType rndtype, j; // Loop controlers - const IndustrySpec *ind_spc; uint num = 0; ProbabilityHelper cumulative_probs[NUM_INDUSTRYTYPES]; // probability collector uint16 probability_max = 0; /* Generate a list of all possible industries that can be built. */ - for (j = 0; j < NUM_INDUSTRYTYPES; j++) { + const IndustrySpec *ind_spc; + for (IndustryType j = 0; j < NUM_INDUSTRYTYPES; j++) { ind_spc = GetIndustrySpec(j); byte chance = ind_spc->appear_ingame[_settings_game.game_creation.landscape]; @@ -2008,7 +1979,8 @@ static void MaybeNewIndustry() if (probability_max == 0) return; /* Find a random type, with maximum being what has been evaluate above*/ - rndtype = RandomRange(probability_max); + IndustryType rndtype = RandomRange(probability_max); + IndustryType j; for (j = 0; j < NUM_INDUSTRYTYPES; j++) { /* and choose the index of the industry that matches as close as possible this random type */ if (cumulative_probs[j].prob >= rndtype) break; @@ -2020,6 +1992,7 @@ static void MaybeNewIndustry() if ((ind_spc->behaviour & INDUSTRYBEH_AFTER_1960) && _cur_year < 1960) return; /* try to create 2000 times this industry */ + Industry *ind; // Will receive the industry's creation pointer. num = 2000; for (;;) { ind = CreateNewIndustry(RandomTile(), cumulative_probs[j].ind); @@ -2435,9 +2408,9 @@ void IndustryDailyLoop() void IndustryMonthlyLoop() { - Industry *i; Backup cur_company(_current_company, OWNER_NONE, FILE_LINE); + Industry *i; FOR_ALL_INDUSTRIES(i) { UpdateIndustryStatistics(i); if (i->prod_level == PRODLEVEL_CLOSURE) {