mirror of https://github.com/OpenTTD/OpenTTD
Codechange: split large function into smaller functions with self-explanatory names
parent
a409e4b026
commit
8cbf1be9d6
|
@ -554,6 +554,145 @@ static bool TransportIndustryGoods(TileIndex tile)
|
||||||
return moved_cargo;
|
return moved_cargo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void AnimateSugarSieve(TileIndex tile)
|
||||||
|
{
|
||||||
|
byte m = GetAnimationFrame(tile) + 1;
|
||||||
|
|
||||||
|
if (_settings_client.sound.ambient) {
|
||||||
|
switch (m & 7) {
|
||||||
|
case 2: SndPlayTileFx(SND_2D_SUGAR_MINE_1, tile); break;
|
||||||
|
case 6: SndPlayTileFx(SND_29_SUGAR_MINE_2, tile); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m >= 96) {
|
||||||
|
m = 0;
|
||||||
|
DeleteAnimatedTile(tile);
|
||||||
|
}
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimateToffeeQuarry(TileIndex tile)
|
||||||
|
{
|
||||||
|
byte m = GetAnimationFrame(tile);
|
||||||
|
|
||||||
|
if (_industry_anim_offs_toffee[m] == 0xFF && _settings_client.sound.ambient) {
|
||||||
|
SndPlayTileFx(SND_30_TOFFEE_QUARRY, tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (++m >= 70) {
|
||||||
|
m = 0;
|
||||||
|
DeleteAnimatedTile(tile);
|
||||||
|
}
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimateBubbleCatcher(TileIndex tile)
|
||||||
|
{
|
||||||
|
byte m = GetAnimationFrame(tile);
|
||||||
|
|
||||||
|
if (++m >= 40) {
|
||||||
|
m = 0;
|
||||||
|
DeleteAnimatedTile(tile);
|
||||||
|
}
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimatePowerPlantSparks(TileIndex tile)
|
||||||
|
{
|
||||||
|
byte m = GetAnimationFrame(tile);
|
||||||
|
if (m == 6) {
|
||||||
|
SetAnimationFrame(tile, 0);
|
||||||
|
DeleteAnimatedTile(tile);
|
||||||
|
} else {
|
||||||
|
SetAnimationFrame(tile, m + 1);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimateToyFactory(TileIndex tile)
|
||||||
|
{
|
||||||
|
byte m = GetAnimationFrame(tile) + 1;
|
||||||
|
|
||||||
|
switch (m) {
|
||||||
|
case 1: if (_settings_client.sound.ambient) SndPlayTileFx(SND_2C_TOY_FACTORY_1, tile); break;
|
||||||
|
case 23: if (_settings_client.sound.ambient) SndPlayTileFx(SND_2B_TOY_FACTORY_2, tile); break;
|
||||||
|
case 28: if (_settings_client.sound.ambient) SndPlayTileFx(SND_2A_TOY_FACTORY_3, tile); break;
|
||||||
|
default:
|
||||||
|
if (m >= 50) {
|
||||||
|
int n = GetIndustryAnimationLoop(tile) + 1;
|
||||||
|
m = 0;
|
||||||
|
if (n >= 8) {
|
||||||
|
n = 0;
|
||||||
|
DeleteAnimatedTile(tile);
|
||||||
|
}
|
||||||
|
SetIndustryAnimationLoop(tile, n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimatePlasticFountain(TileIndex tile, IndustryGfx gfx)
|
||||||
|
{
|
||||||
|
gfx = (gfx < GFX_PLASTIC_FOUNTAIN_ANIMATED_8) ? gfx + 1 : GFX_PLASTIC_FOUNTAIN_ANIMATED_1;
|
||||||
|
SetIndustryGfx(tile, gfx);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimateOilWell(TileIndex tile, IndustryGfx gfx)
|
||||||
|
{
|
||||||
|
bool b = Chance16(1, 7);
|
||||||
|
byte m = GetAnimationFrame(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);
|
||||||
|
DeleteAnimatedTile(tile);
|
||||||
|
} else {
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
SetIndustryGfx(tile, gfx);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnimateMineTower(TileIndex tile)
|
||||||
|
{
|
||||||
|
int state = _tick_counter & 0x7FF;
|
||||||
|
|
||||||
|
if ((state -= 0x400) < 0) return;
|
||||||
|
|
||||||
|
if (state < 0x1A0) {
|
||||||
|
if (state < 0x20 || state >= 0x180) {
|
||||||
|
byte m = GetAnimationFrame(tile);
|
||||||
|
if (!(m & 0x40)) {
|
||||||
|
SetAnimationFrame(tile, m | 0x40);
|
||||||
|
if (_settings_client.sound.ambient) SndPlayTileFx(SND_0B_MINE, tile);
|
||||||
|
}
|
||||||
|
if (state & 7) return;
|
||||||
|
} else {
|
||||||
|
if (state & 3) return;
|
||||||
|
}
|
||||||
|
byte m = (GetAnimationFrame(tile) + 1) | 0x40;
|
||||||
|
if (m > 0xC2) m = 0xC0;
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
} else if (state >= 0x200 && state < 0x3A0) {
|
||||||
|
int i = (state < 0x220 || state >= 0x380) ? 7 : 3;
|
||||||
|
if (state & i) return;
|
||||||
|
|
||||||
|
byte m = (GetAnimationFrame(tile) & 0xBF) - 1;
|
||||||
|
if (m < 0x80) m = 0x82;
|
||||||
|
SetAnimationFrame(tile, m);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void AnimateTile_Industry(TileIndex tile)
|
static void AnimateTile_Industry(TileIndex tile)
|
||||||
{
|
{
|
||||||
|
@ -566,159 +705,43 @@ static void AnimateTile_Industry(TileIndex tile)
|
||||||
|
|
||||||
switch (gfx) {
|
switch (gfx) {
|
||||||
case GFX_SUGAR_MINE_SIEVE:
|
case GFX_SUGAR_MINE_SIEVE:
|
||||||
if ((_tick_counter & 1) == 0) {
|
if ((_tick_counter & 1) == 0) AnimateSugarSieve(tile);
|
||||||
byte m = GetAnimationFrame(tile) + 1;
|
|
||||||
|
|
||||||
if (_settings_client.sound.ambient) {
|
|
||||||
switch (m & 7) {
|
|
||||||
case 2: SndPlayTileFx(SND_2D_SUGAR_MINE_1, tile); break;
|
|
||||||
case 6: SndPlayTileFx(SND_29_SUGAR_MINE_2, tile); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m >= 96) {
|
|
||||||
m = 0;
|
|
||||||
DeleteAnimatedTile(tile);
|
|
||||||
}
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GFX_TOFFEE_QUARY:
|
case GFX_TOFFEE_QUARY:
|
||||||
if ((_tick_counter & 3) == 0) {
|
if ((_tick_counter & 3) == 0) AnimateToffeeQuarry(tile);
|
||||||
byte m = GetAnimationFrame(tile);
|
|
||||||
|
|
||||||
if (_industry_anim_offs_toffee[m] == 0xFF && _settings_client.sound.ambient) {
|
|
||||||
SndPlayTileFx(SND_30_TOFFEE_QUARRY, tile);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (++m >= 70) {
|
|
||||||
m = 0;
|
|
||||||
DeleteAnimatedTile(tile);
|
|
||||||
}
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GFX_BUBBLE_CATCHER:
|
case GFX_BUBBLE_CATCHER:
|
||||||
if ((_tick_counter & 1) == 0) {
|
if ((_tick_counter & 1) == 0) AnimateBubbleCatcher(tile);
|
||||||
byte m = GetAnimationFrame(tile);
|
|
||||||
|
|
||||||
if (++m >= 40) {
|
|
||||||
m = 0;
|
|
||||||
DeleteAnimatedTile(tile);
|
|
||||||
}
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Sparks on a coal plant */
|
|
||||||
case GFX_POWERPLANT_SPARKS:
|
case GFX_POWERPLANT_SPARKS:
|
||||||
if ((_tick_counter & 3) == 0) {
|
if ((_tick_counter & 3) == 0) AnimatePowerPlantSparks(tile);
|
||||||
byte m = GetAnimationFrame(tile);
|
|
||||||
if (m == 6) {
|
|
||||||
SetAnimationFrame(tile, 0);
|
|
||||||
DeleteAnimatedTile(tile);
|
|
||||||
} else {
|
|
||||||
SetAnimationFrame(tile, m + 1);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GFX_TOY_FACTORY:
|
case GFX_TOY_FACTORY:
|
||||||
if ((_tick_counter & 1) == 0) {
|
if ((_tick_counter & 1) == 0) AnimateToyFactory(tile);
|
||||||
byte m = GetAnimationFrame(tile) + 1;
|
|
||||||
|
|
||||||
switch (m) {
|
|
||||||
case 1: if (_settings_client.sound.ambient) SndPlayTileFx(SND_2C_TOY_FACTORY_1, tile); break;
|
|
||||||
case 23: if (_settings_client.sound.ambient) SndPlayTileFx(SND_2B_TOY_FACTORY_2, tile); break;
|
|
||||||
case 28: if (_settings_client.sound.ambient) SndPlayTileFx(SND_2A_TOY_FACTORY_3, tile); break;
|
|
||||||
default:
|
|
||||||
if (m >= 50) {
|
|
||||||
int n = GetIndustryAnimationLoop(tile) + 1;
|
|
||||||
m = 0;
|
|
||||||
if (n >= 8) {
|
|
||||||
n = 0;
|
|
||||||
DeleteAnimatedTile(tile);
|
|
||||||
}
|
|
||||||
SetIndustryAnimationLoop(tile, n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GFX_PLASTIC_FOUNTAIN_ANIMATED_1: case GFX_PLASTIC_FOUNTAIN_ANIMATED_2:
|
case GFX_PLASTIC_FOUNTAIN_ANIMATED_1: case GFX_PLASTIC_FOUNTAIN_ANIMATED_2:
|
||||||
case GFX_PLASTIC_FOUNTAIN_ANIMATED_3: case GFX_PLASTIC_FOUNTAIN_ANIMATED_4:
|
case GFX_PLASTIC_FOUNTAIN_ANIMATED_3: case GFX_PLASTIC_FOUNTAIN_ANIMATED_4:
|
||||||
case GFX_PLASTIC_FOUNTAIN_ANIMATED_5: case GFX_PLASTIC_FOUNTAIN_ANIMATED_6:
|
case GFX_PLASTIC_FOUNTAIN_ANIMATED_5: case GFX_PLASTIC_FOUNTAIN_ANIMATED_6:
|
||||||
case GFX_PLASTIC_FOUNTAIN_ANIMATED_7: case GFX_PLASTIC_FOUNTAIN_ANIMATED_8:
|
case GFX_PLASTIC_FOUNTAIN_ANIMATED_7: case GFX_PLASTIC_FOUNTAIN_ANIMATED_8:
|
||||||
if ((_tick_counter & 3) == 0) {
|
if ((_tick_counter & 3) == 0) AnimatePlasticFountain(tile, gfx);
|
||||||
gfx = (gfx < 155) ? gfx + 1 : 148;
|
|
||||||
SetIndustryGfx(tile, gfx);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GFX_OILWELL_ANIMATED_1:
|
case GFX_OILWELL_ANIMATED_1:
|
||||||
case GFX_OILWELL_ANIMATED_2:
|
case GFX_OILWELL_ANIMATED_2:
|
||||||
case GFX_OILWELL_ANIMATED_3:
|
case GFX_OILWELL_ANIMATED_3:
|
||||||
if ((_tick_counter & 7) == 0) {
|
if ((_tick_counter & 7) == 0) AnimateOilWell(tile, gfx);
|
||||||
bool b = Chance16(1, 7);
|
|
||||||
byte m = GetAnimationFrame(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);
|
|
||||||
DeleteAnimatedTile(tile);
|
|
||||||
} else {
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
SetIndustryGfx(tile, gfx);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GFX_COAL_MINE_TOWER_ANIMATED:
|
case GFX_COAL_MINE_TOWER_ANIMATED:
|
||||||
case GFX_COPPER_MINE_TOWER_ANIMATED:
|
case GFX_COPPER_MINE_TOWER_ANIMATED:
|
||||||
case GFX_GOLD_MINE_TOWER_ANIMATED: {
|
case GFX_GOLD_MINE_TOWER_ANIMATED:
|
||||||
int state = _tick_counter & 0x7FF;
|
AnimateMineTower(tile);
|
||||||
|
break;
|
||||||
if ((state -= 0x400) < 0) return;
|
|
||||||
|
|
||||||
if (state < 0x1A0) {
|
|
||||||
if (state < 0x20 || state >= 0x180) {
|
|
||||||
byte m = GetAnimationFrame(tile);
|
|
||||||
if (!(m & 0x40)) {
|
|
||||||
SetAnimationFrame(tile, m | 0x40);
|
|
||||||
if (_settings_client.sound.ambient) SndPlayTileFx(SND_0B_MINE, tile);
|
|
||||||
}
|
|
||||||
if (state & 7) return;
|
|
||||||
} else {
|
|
||||||
if (state & 3) return;
|
|
||||||
}
|
|
||||||
byte m = (GetAnimationFrame(tile) + 1) | 0x40;
|
|
||||||
if (m > 0xC2) m = 0xC0;
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
} else if (state >= 0x200 && state < 0x3A0) {
|
|
||||||
int i = (state < 0x220 || state >= 0x380) ? 7 : 3;
|
|
||||||
if (state & i) return;
|
|
||||||
|
|
||||||
byte m = (GetAnimationFrame(tile) & 0xBF) - 1;
|
|
||||||
if (m < 0x80) m = 0x82;
|
|
||||||
SetAnimationFrame(tile, m);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3091,83 +3091,89 @@ static Foundation GetFoundation_Station(TileIndex tile, Slope tileh)
|
||||||
return FlatteningFoundation(tileh);
|
return FlatteningFoundation(tileh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void FillTileDescRoadStop(TileIndex tile, TileDesc *td)
|
||||||
|
{
|
||||||
|
RoadType road_rt = GetRoadTypeRoad(tile);
|
||||||
|
RoadType tram_rt = GetRoadTypeTram(tile);
|
||||||
|
Owner road_owner = INVALID_OWNER;
|
||||||
|
Owner tram_owner = INVALID_OWNER;
|
||||||
|
if (road_rt != INVALID_ROADTYPE) {
|
||||||
|
const RoadTypeInfo *rti = GetRoadTypeInfo(road_rt);
|
||||||
|
td->roadtype = rti->strings.name;
|
||||||
|
td->road_speed = rti->max_speed / 2;
|
||||||
|
road_owner = GetRoadOwner(tile, RTT_ROAD);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tram_rt != INVALID_ROADTYPE) {
|
||||||
|
const RoadTypeInfo *rti = GetRoadTypeInfo(tram_rt);
|
||||||
|
td->tramtype = rti->strings.name;
|
||||||
|
td->tram_speed = rti->max_speed / 2;
|
||||||
|
tram_owner = GetRoadOwner(tile, RTT_TRAM);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsDriveThroughStopTile(tile)) {
|
||||||
|
/* Is there a mix of owners? */
|
||||||
|
if ((tram_owner != INVALID_OWNER && tram_owner != td->owner[0]) ||
|
||||||
|
(road_owner != INVALID_OWNER && road_owner != td->owner[0])) {
|
||||||
|
uint i = 1;
|
||||||
|
if (road_owner != INVALID_OWNER) {
|
||||||
|
td->owner_type[i] = STR_LAND_AREA_INFORMATION_ROAD_OWNER;
|
||||||
|
td->owner[i] = road_owner;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (tram_owner != INVALID_OWNER) {
|
||||||
|
td->owner_type[i] = STR_LAND_AREA_INFORMATION_TRAM_OWNER;
|
||||||
|
td->owner[i] = tram_owner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FillTileDescRailStation(TileIndex tile, TileDesc *td)
|
||||||
|
{
|
||||||
|
const StationSpec *spec = GetStationSpec(tile);
|
||||||
|
|
||||||
|
if (spec != nullptr) {
|
||||||
|
td->station_class = StationClass::Get(spec->cls_id)->name;
|
||||||
|
td->station_name = spec->name;
|
||||||
|
|
||||||
|
if (spec->grf_prop.grffile != nullptr) {
|
||||||
|
const GRFConfig *gc = GetGRFConfig(spec->grf_prop.grffile->grfid);
|
||||||
|
td->grf = gc->GetName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
|
||||||
|
td->rail_speed = rti->max_speed;
|
||||||
|
td->railtype = rti->strings.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FillTileDescAirport(TileIndex tile, TileDesc *td)
|
||||||
|
{
|
||||||
|
const AirportSpec *as = Station::GetByTile(tile)->airport.GetSpec();
|
||||||
|
td->airport_class = AirportClass::Get(as->cls_id)->name;
|
||||||
|
td->airport_name = as->name;
|
||||||
|
|
||||||
|
const AirportTileSpec *ats = AirportTileSpec::GetByTile(tile);
|
||||||
|
td->airport_tile_name = ats->name;
|
||||||
|
|
||||||
|
if (as->grf_prop.grffile != nullptr) {
|
||||||
|
const GRFConfig *gc = GetGRFConfig(as->grf_prop.grffile->grfid);
|
||||||
|
td->grf = gc->GetName();
|
||||||
|
} else if (ats->grf_prop.grffile != nullptr) {
|
||||||
|
const GRFConfig *gc = GetGRFConfig(ats->grf_prop.grffile->grfid);
|
||||||
|
td->grf = gc->GetName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void GetTileDesc_Station(TileIndex tile, TileDesc *td)
|
static void GetTileDesc_Station(TileIndex tile, TileDesc *td)
|
||||||
{
|
{
|
||||||
td->owner[0] = GetTileOwner(tile);
|
td->owner[0] = GetTileOwner(tile);
|
||||||
|
|
||||||
if (IsRoadStopTile(tile)) {
|
|
||||||
RoadType road_rt = GetRoadTypeRoad(tile);
|
|
||||||
RoadType tram_rt = GetRoadTypeTram(tile);
|
|
||||||
Owner road_owner = INVALID_OWNER;
|
|
||||||
Owner tram_owner = INVALID_OWNER;
|
|
||||||
if (road_rt != INVALID_ROADTYPE) {
|
|
||||||
const RoadTypeInfo *rti = GetRoadTypeInfo(road_rt);
|
|
||||||
td->roadtype = rti->strings.name;
|
|
||||||
td->road_speed = rti->max_speed / 2;
|
|
||||||
road_owner = GetRoadOwner(tile, RTT_ROAD);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tram_rt != INVALID_ROADTYPE) {
|
|
||||||
const RoadTypeInfo *rti = GetRoadTypeInfo(tram_rt);
|
|
||||||
td->tramtype = rti->strings.name;
|
|
||||||
td->tram_speed = rti->max_speed / 2;
|
|
||||||
tram_owner = GetRoadOwner(tile, RTT_TRAM);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsDriveThroughStopTile(tile)) {
|
|
||||||
/* Is there a mix of owners? */
|
|
||||||
if ((tram_owner != INVALID_OWNER && tram_owner != td->owner[0]) ||
|
|
||||||
(road_owner != INVALID_OWNER && road_owner != td->owner[0])) {
|
|
||||||
uint i = 1;
|
|
||||||
if (road_owner != INVALID_OWNER) {
|
|
||||||
td->owner_type[i] = STR_LAND_AREA_INFORMATION_ROAD_OWNER;
|
|
||||||
td->owner[i] = road_owner;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
if (tram_owner != INVALID_OWNER) {
|
|
||||||
td->owner_type[i] = STR_LAND_AREA_INFORMATION_TRAM_OWNER;
|
|
||||||
td->owner[i] = tram_owner;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
td->build_date = BaseStation::GetByTile(tile)->build_date;
|
td->build_date = BaseStation::GetByTile(tile)->build_date;
|
||||||
|
|
||||||
if (HasStationTileRail(tile)) {
|
if (IsRoadStop(tile)) FillTileDescRoadStop(tile, td);
|
||||||
const StationSpec *spec = GetStationSpec(tile);
|
if (HasStationRail(tile)) FillTileDescRailStation(tile, td);
|
||||||
|
if (IsAirport(tile)) FillTileDescAirport(tile, td);
|
||||||
if (spec != nullptr) {
|
|
||||||
td->station_class = StationClass::Get(spec->cls_id)->name;
|
|
||||||
td->station_name = spec->name;
|
|
||||||
|
|
||||||
if (spec->grf_prop.grffile != nullptr) {
|
|
||||||
const GRFConfig *gc = GetGRFConfig(spec->grf_prop.grffile->grfid);
|
|
||||||
td->grf = gc->GetName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
|
|
||||||
td->rail_speed = rti->max_speed;
|
|
||||||
td->railtype = rti->strings.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsAirport(tile)) {
|
|
||||||
const AirportSpec *as = Station::GetByTile(tile)->airport.GetSpec();
|
|
||||||
td->airport_class = AirportClass::Get(as->cls_id)->name;
|
|
||||||
td->airport_name = as->name;
|
|
||||||
|
|
||||||
const AirportTileSpec *ats = AirportTileSpec::GetByTile(tile);
|
|
||||||
td->airport_tile_name = ats->name;
|
|
||||||
|
|
||||||
if (as->grf_prop.grffile != nullptr) {
|
|
||||||
const GRFConfig *gc = GetGRFConfig(as->grf_prop.grffile->grfid);
|
|
||||||
td->grf = gc->GetName();
|
|
||||||
} else if (ats->grf_prop.grffile != nullptr) {
|
|
||||||
const GRFConfig *gc = GetGRFConfig(ats->grf_prop.grffile->grfid);
|
|
||||||
td->grf = gc->GetName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StringID str;
|
StringID str;
|
||||||
switch (GetStationType(tile)) {
|
switch (GetStationType(tile)) {
|
||||||
|
|
Loading…
Reference in New Issue