(svn r202) -Codechange: I missed some files with trailing spaces.. this should be

all ;)
This commit is contained in:
truelight 2004-09-11 09:55:19 +00:00
parent 4ccd84f94b
commit 7aa0bdf48b
10 changed files with 283 additions and 283 deletions

View File

@ -194,7 +194,7 @@ static void IndustryDrawTileProc1(TileInfo *ti)
if (!(_map_owner[ti->tile] & 0x80))
return;
d = &_draw_industry_spec1[_map3_lo[ti->tile]];
AddChildSpriteScreen(0x12A7 + d->image_1, d->x, 0);
@ -203,14 +203,14 @@ static void IndustryDrawTileProc1(TileInfo *ti)
AddChildSpriteScreen(0x12B0 + image - 1, 8, 41);
if ( (image = d->image_3) != 0)
AddChildSpriteScreen(0x12AC + image - 1,
AddChildSpriteScreen(0x12AC + image - 1,
_drawtile_proc1_x[image-1], _drawtile_proc1_y[image-1]);
}
static void IndustryDrawTileProc2(TileInfo *ti)
{
int x = 0;
if (_map_owner[ti->tile] & 0x80) {
x = _industry_anim_offs[_map3_lo[ti->tile]];
if ( (byte)x == 0xFF)
@ -224,7 +224,7 @@ static void IndustryDrawTileProc2(TileInfo *ti)
static void IndustryDrawTileProc3(TileInfo *ti)
{
if (_map_owner[ti->tile] & 0x80) {
AddChildSpriteScreen(0x128B, 5,
AddChildSpriteScreen(0x128B, 5,
_industry_anim_offs_2[_map3_lo[ti->tile]]);
}
AddChildSpriteScreen(0x30B928A, 3, 67);
@ -254,7 +254,7 @@ static void DrawCoalPlantSparkles(TileInfo *ti)
if (image & 0x80) {
image = (image >> 2) & 0x1F;
if (image != 0 && image < 7) {
AddChildSpriteScreen(image + 0x806,
AddChildSpriteScreen(image + 0x806,
_coal_plant_sparkles_x[image-1],
_coal_plant_sparkles_y[image-1]
);
@ -305,11 +305,11 @@ static void DrawTile_Industry(TileInfo *ti)
if (image&0x8000 && (image & 0xFFFF0000) == 0)
image |= ormod;
if (!(_display_opt & DO_TRANS_BUILDINGS))
image = (image & 0x3FFF) | 0x3224000;
AddSortableSpriteToDraw(image,
AddSortableSpriteToDraw(image,
ti->x | (dits->subtile_xy>>4),
ti->y | (dits->subtile_xy&0xF),
(dits->width_height>>4)+1,
@ -321,7 +321,7 @@ static void DrawTile_Industry(TileInfo *ti)
return;
}
/* TTDBUG: strange code here, return if AddSortableSpriteToDraw failed? */
/* TTDBUG: strange code here, return if AddSortableSpriteToDraw failed? */
{
int proc;
if ((proc=dits->proc-1) >= 0 )
@ -406,15 +406,15 @@ int32 CmdDestroyIndustry(int x, int y, uint32 flags, uint32 p1, uint32 p2)
// check if you're allowed to remove the industry. Minimum amount
// of ratings to remove the industry depends on difficulty setting
if (!CheckforTownRating(tile, flags, t, INDUSTRY_REMOVE))
if (!CheckforTownRating(tile, flags, t, INDUSTRY_REMOVE))
return CMD_ERROR;
if (flags & DC_EXEC) {
DeleteIndustry(i);
CreateEffectVehicleAbove(x + 8,y + 8, 2, EV_DEMOLISH);
ChangeTownRating(t, -1500, -1000); // penalty is 1500
}
return (_price.build_industry >> 5) * _industry_type_costs[i->type]*2;
}
*/
@ -435,7 +435,7 @@ void TransportIndustryGoods(uint tile)
byte m5;
i = DEREF_INDUSTRY(_map2[tile]);
type = i->type;
cw = min(i->cargo_waiting[0], 255);
if (cw > _industry_min_cargo[type]/* && i->produced_cargo[0] != 0xFF*/) {
@ -459,9 +459,9 @@ void TransportIndustryGoods(uint tile)
cw = min(i->cargo_waiting[1], 255);
if (cw > _industry_min_cargo[type]) {
i->cargo_waiting[1] -= cw;
if (_economy.fluct <= 0) cw = (cw + 1) >> 1;
i->last_mo_production[1] += cw;
am = MoveGoodsToStation(i->xy, i->width, i->height, i->produced_cargo[1], cw);
@ -478,7 +478,7 @@ static void AnimateTile_Industry(uint tile)
case 174:
if ((_tick_counter & 1) == 0) {
m = _map3_lo[tile] + 1;
switch(m & 7) {
case 2: SndPlayTileFx(45, tile); break;
case 6: SndPlayTileFx(41, tile); break;
@ -497,7 +497,7 @@ static void AnimateTile_Industry(uint tile)
case 165:
if ((_tick_counter & 3) == 0) {
m = _map3_lo[tile];
if (_industry_anim_offs[m] == 0xFF) {
SndPlayTileFx(48, tile);
}
@ -556,7 +556,7 @@ static void AnimateTile_Industry(uint tile)
_map3_hi[tile] = 0;
DeleteAnimatedTile(tile);
}
_map3_lo[tile] = m;
_map3_lo[tile] = m;
MarkTileDirtyByTile(tile);
}
break;
@ -581,7 +581,7 @@ static void AnimateTile_Industry(uint tile)
if (m == 4 && (m=0,++n) == 32+1 && (n=30,b)) {
_map_owner[tile] = 0x83;
_map5[tile] = 29;
DeleteAnimatedTile(tile);
DeleteAnimatedTile(tile);
} else {
_map5[tile] = n;
_map_owner[tile] = (_map_owner[tile] & ~3) | m;
@ -648,7 +648,7 @@ static void MakeIndustryTileBigger(uint tile, byte size)
size = (size + 1) & 3;
if (size == 3) size |= 0x80;
_map_owner[tile] = size | b;
MarkTileDirtyByTile(tile);
if (!(_map_owner[tile] & 0x80))
@ -692,7 +692,7 @@ static void TileLoopIndustryCase161(uint tile)
};
SndPlayTileFx(46, tile);
dir = Random() & 3;
v = CreateEffectVehicleAbove(
@ -783,7 +783,7 @@ static void TileLoop_Industry(uint tile)
break;
case 49: {
CreateEffectVehicleAbove(GET_TILE_X(tile)*16 + 6, GET_TILE_Y(tile)*16 + 6, 43, EV_SMOKE_3);
CreateEffectVehicleAbove(GET_TILE_X(tile)*16 + 6, GET_TILE_Y(tile)*16 + 6, 43, EV_SMOKE_3);
} break;
@ -800,8 +800,8 @@ static void TileLoop_Industry(uint tile)
case 161:
TileLoopIndustryCase161(tile);
break;
break;
case 165:
AddAnimatedTile(tile);
break;
@ -840,7 +840,7 @@ static void ChangeTileOwner_Industry(uint tile, byte old_player, byte new_player
void DeleteIndustry(Industry *i)
{
int index = i - _industries;
BEGIN_TILE_LOOP(tile_cur, i->width, i->height, i->xy);
if (IS_TILETYPE(tile_cur, MP_INDUSTRY)) {
if (_map2[tile_cur] == (byte)index) {
@ -850,7 +850,7 @@ void DeleteIndustry(Industry *i)
DeleteOilRig(tile_cur);
}
END_TILE_LOOP(tile_cur, i->width, i->height, i->xy);
i->xy = 0;
_industry_sort_dirty = true;
DeleteSubsidyWithIndustry(index);
@ -894,9 +894,9 @@ static void SetupFarmFieldFence(uint tile, int size, byte type, int direction)
do {
tile = TILE_MASK(tile);
if (IS_TILETYPE(tile, MP_CLEAR) || IS_TILETYPE(tile, MP_TREES)) {
or = type;
if (or == 1 && (uint16)Random() <= 9362) or = 2;
@ -908,7 +908,7 @@ static void SetupFarmFieldFence(uint tile, int size, byte type, int direction)
}
_map3_hi[tile] = (_map3_hi[tile] & and) | or;
}
tile += direction ? TILE_XY(0,1) : TILE_XY(1,0);
} while (--size);
}
@ -933,7 +933,7 @@ static void PlantFarmField(uint tile)
/* offset tile to match size */
tile = tile - TILE_XY(size_x>>1, size_y>>1);
/* check the amount of bad tiles */
count = 0;
BEGIN_TILE_LOOP(cur_tile, size_x, size_y, tile)
@ -952,15 +952,15 @@ static void PlantFarmField(uint tile)
BEGIN_TILE_LOOP(cur_tile, size_x, size_y, tile)
cur_tile = TILE_MASK(cur_tile);
if (!IsBadFarmFieldTile2(cur_tile)) {
ModifyTile(cur_tile,
MP_SETTYPE(MP_CLEAR) |
ModifyTile(cur_tile,
MP_SETTYPE(MP_CLEAR) |
MP_MAP2_CLEAR | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAPOWNER | MP_MAP5,
type2, /* map3_lo */
OWNER_NONE, /* map_owner */
type); /* map5 */
}
END_TILE_LOOP(cur_tile, size_x, size_y, tile)
type = 3;
if (_opt.landscape != LT_HILLY && _opt.landscape != LT_DESERT) {
type = _plantfarmfield_type[Random() & 0xF];
@ -979,13 +979,13 @@ static void MaybePlantFarmField(Industry *i)
tile = TileAddWrap(i->xy, ((i->width>>1) + Random() % 31 - 16), ((i->height>>1) + Random() % 31 - 16));
if (tile != TILE_WRAPPED)
PlantFarmField(tile);
}
}
}
static void ChopLumberMillTrees(Industry *i)
{
static const TileIndexDiff _chop_dir[4] = { TILE_XY(0,1), TILE_XY(1,0), TILE_XY(0,-1), TILE_XY(-1,0) };
uint tile = i->xy;
int dir, a, j;
@ -1096,9 +1096,9 @@ void OnTick_Industry()
_industry_sound_ctr++;
if (_industry_sound_ctr == 75) {
SndPlayTileFx(55, _industry_sound_tile);
SndPlayTileFx(55, _industry_sound_tile);
} else if (_industry_sound_ctr == 160) {
_industry_sound_ctr = 0;
_industry_sound_ctr = 0;
SndPlayTileFx(54, _industry_sound_tile);
}
}
@ -1134,7 +1134,7 @@ extern bool _ignore_restrictions;
static bool CheckNewIndustry_Oilwell(uint tile, int type)
{
int x,y;
if(_ignore_restrictions && _game_mode == GM_EDITOR)
return true;
@ -1230,7 +1230,7 @@ static Town *CheckMultipleIndustryInTown(uint tile, int type)
Industry *i;
t = ClosestTownFromTile(tile, (uint)-1);
if (_patches.multiple_industry_per_town)
return t;
@ -1285,9 +1285,9 @@ static bool CheckIfIndustryTilesAreFree(uint tile, const IndustryTileTable *it,
continue;
return false;
}
FindLandscapeHeightByTile(&ti, cur_tile);
if (it->map5 == 0xFF) {
if (ti.type != MP_WATER || ti.tileh != 0)
return false;
@ -1310,7 +1310,7 @@ static bool CheckIfIndustryTilesAreFree(uint tile, const IndustryTileTable *it,
if (bits & 0x10)
return false;
t = ~ti.tileh;
if (bits & 1 && (t & (1+8)))
@ -1344,7 +1344,7 @@ static bool CheckIfIndustryTilesAreFree(uint tile, const IndustryTileTable *it,
if (ti.type != MP_HOUSE) {
_error_message = STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS;
return false;
}
}
} else {
do_clear:
if (DoCommandByTile(cur_tile, 0, 0, DC_AUTO, CMD_LANDSCAPE_CLEAR) == CMD_ERROR)
@ -1366,7 +1366,7 @@ static bool CheckIfTooCloseToIndustry(uint tile, int type)
// accepting industries won't be close, not even with patch
if (_patches.same_industry_close && (spec->accepts_cargo[0] == 0xFF) )
return true;
for(i=_industries; i != endof(_industries); i++) {
// check if an industry that accepts the same goods is nearby
if (i->xy != 0 &&
@ -1451,7 +1451,7 @@ static void DoCreateNewIndustry(Industry *i, uint tile, int type, const Industry
if (_generating_world == 0)
i->total_production[0] = i->total_production[1] = 0;
i->prod_level = 0x10;
do {
@ -1512,7 +1512,7 @@ int32 CmdBuildIndustry(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if ((t=CheckMultipleIndustryInTown(tile, p1)) == NULL)
return CMD_ERROR;
num = spec->num_table;
itt = spec->table;
@ -1530,7 +1530,7 @@ int32 CmdBuildIndustry(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (flags & DC_EXEC)
DoCreateNewIndustry(i, tile, p1, it, t, 0x10);
return (_price.build_industry >> 5) * _industry_type_costs[p1];
}
@ -1567,7 +1567,7 @@ Industry *CreateNewIndustry(uint tile, int type)
return NULL;
DoCreateNewIndustry(i, tile, type, it, t, 0x10);
return i;
}
@ -1590,7 +1590,7 @@ static void PlaceInitialIndustry(byte type, int amount)
int i = 2000;
do {
if (CreateNewIndustry(TILE_MASK(Random()), type) != NULL)
break;
break;
} while (--i != 0);
} while (--num);
}
@ -1627,7 +1627,7 @@ static void ExtChangeIndustryProduction(Industry *i)
change = old = i->production_rate[j];
if (CHANCE16R(20,1024,r))change -= ((RandomRange(50) + 10)*old) >> 8;
if (CHANCE16I(20+(i->pct_transported[j]*20>>8),1024,r>>16)) change += ((RandomRange(50) + 10)*old) >> 8;
// make sure it doesn't exceed 255 or goes below 0
change = clamp(change, 0, 255);
if (change == old) {
@ -1640,14 +1640,14 @@ static void ExtChangeIndustryProduction(Industry *i)
if (change >= _industry_spec[i->type].production_rate[j]/4)
closeit = false;
mag = abs(percent);
if (mag >= 10) {
SET_DPARAM16(3, mag);
SET_DPARAM16(0,_cargoc.names_s[i->produced_cargo[j]]);
SET_DPARAM16(1, i->town->index);
SET_DPARAM16(2, i->type + STR_4802_COAL_MINE);
AddNewsItem(percent>=0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN,
AddNewsItem(percent>=0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN,
NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0),
i->xy + TILE_XY(1,1), 0);
}
@ -1666,13 +1666,13 @@ static void ExtChangeIndustryProduction(Industry *i)
static void UpdateIndustryStatistics(Industry *i)
{
byte pct;
if (i->produced_cargo[0] != 0xFF) {
if (i->produced_cargo[0] != 0xFF) {
pct = 0;
if (i->last_mo_production[0] != 0) {
i->last_prod_year = _cur_year;
pct = min(i->last_mo_transported[0] * 256 / i->last_mo_production[0],255);
}
}
i->pct_transported[0] = pct;
i->total_production[0] = i->last_mo_production[0];
@ -1687,7 +1687,7 @@ static void UpdateIndustryStatistics(Industry *i)
if (i->last_mo_production[1] != 0) {
i->last_prod_year = _cur_year;
pct = min(i->last_mo_transported[1] * 256 / i->last_mo_production[1],255);
}
}
i->pct_transported[1] = pct;
i->total_production[1] = i->last_mo_production[1];
@ -1747,7 +1747,7 @@ static void MaybeCloseIndustry(Industry *i)
uint32 r;
StringID str;
int type = i->type;
if (_industry_close_mode[type] == 1) {
/* decrease or increase */
if (type == IT_OIL_WELL && _opt.landscape == LT_NORMAL) goto decrease_production;
@ -1759,14 +1759,14 @@ static void MaybeCloseIndustry(Industry *i)
byte b;
i->prod_level <<= 1;
b = i->production_rate[0]*2;
if (i->production_rate[0] >= 128) b=255;
i->production_rate[0] = b;
b = i->production_rate[1]*2;
if (i->production_rate[1] >= 128) b=255;
i->production_rate[1] = b;
str = _industry_prod_up_strings[type];
goto add_news;
}
@ -1782,7 +1782,7 @@ decrease_production:
str = _industry_prod_down_strings[type];
goto add_news;
}
}
}
} else if (_industry_close_mode[type] > 1) {
/* maybe close */
if ( (byte)(_cur_year - i->last_prod_year) >= 5 && CHANCE16(1,2)) {

36
misc.c
View File

@ -95,7 +95,7 @@ void InitializeGame()
_date_fract = 0;
_cur_tileloop_tile = 0;
_vehicle_id_ctr_day = 0;
{
uint starting = ConvertIntDate(_patches.starting_date);
if ( starting == (uint)-1) starting = 10958;
@ -119,7 +119,7 @@ void InitializeGame()
InitializeTrees();
InitializeStations();
InitializeIndustries();
InitializeNameMgr();
InitializeVehiclesGuiList();
InitializeTrains();
@ -153,7 +153,7 @@ void GenerateWorld(int mode)
} else {
GenerateLandscape();
GenerateClearTile();
// only generate towns, tree and industries in newgame mode.
if (mode == 0) {
GenerateTowns();
@ -163,7 +163,7 @@ void GenerateWorld(int mode)
}
}
// These are probably pointless when inside the scenario editor.
// These are probably pointless when inside the scenario editor.
StartupPlayers();
StartupEngines();
StartupDisasters();
@ -211,7 +211,7 @@ byte *GetName(int id, byte *buff)
void InitializeCheats()
{
memset(&_cheats, 0, sizeof(Cheats));
memset(&_cheats, 0, sizeof(Cheats));
}
@ -250,7 +250,7 @@ StringID AllocateName(const byte *name, byte skip)
for(i=0; (dst[i] = name[i]) != 0 && ++i != 32; ) {}
dst[31] = 0;
return free_item | 0x7800 | (skip << 8);
}
@ -319,7 +319,7 @@ void ConvertDayToYMD(YearMonthDay *ymd, uint16 date)
}
ymd->year = yr;
x = _month_date_from_year_day[rem];
ymd->month = x >> 5;
ymd->day = x & 0x1F;
@ -331,7 +331,7 @@ void ConvertDayToYMD(YearMonthDay *ymd, uint16 date)
uint ConvertYMDToDay(uint year, uint month, uint day)
{
uint rem;
// day in the year
rem = _accum_days_for_month[month] + day - 1;
@ -355,11 +355,11 @@ uint ConvertIntDate(uint date)
if (IS_INT_INSIDE(date, 1920, 2090 + 1)) {
year = date - 1920;
} else if (IS_INT_INSIDE(date, 192001, 209012+1)) {
month = date % 100 - 1;
month = date % 100 - 1;
year = date / 100 - 1920;
} else if (IS_INT_INSIDE(date, 19200101, 20901231+1)) {
day = date % 100; date /= 100;
month = date % 100 - 1;
month = date % 100 - 1;
year = date / 100 - 1920;
} else if (IS_INT_INSIDE(date, 2091, 65536))
return date;
@ -405,7 +405,7 @@ void InitializeLandscapeVariables(bool only_constants)
for(i=0; i!=NUM_CARGO; i++) {
_cargoc.sprites[i] = lpd->sprites[i];
str = lpd->names[i];
_cargoc.names_s[i] = str;
_cargoc.names_p[i] = (str += 0x20);
@ -413,7 +413,7 @@ void InitializeLandscapeVariables(bool only_constants)
_cargoc.names_long_p[i] = (str += 0x20);
_cargoc.names_short[i] = (str += 0x20);
_cargoc.weights[i] = lpd->weights[i];
if (!only_constants) {
_cargo_payment_rates[i] = lpd->initial_cargo_payment[i];
_cargo_payment_rates_frac[i] = 0;
@ -427,7 +427,7 @@ void InitializeLandscapeVariables(bool only_constants)
// distance in Manhattan metric
uint GetTileDist(TileIndex xy1, TileIndex xy2)
{
return myabs(GET_TILE_X(xy1) - GET_TILE_X(xy2)) +
return myabs(GET_TILE_X(xy1) - GET_TILE_X(xy2)) +
myabs(GET_TILE_Y(xy1) - GET_TILE_Y(xy2));
}
@ -536,7 +536,7 @@ void IncreaseDate()
/* increase day, and check if a new day is there? */
_tick_counter++;
if ( (_date_fract += 885) >= 885)
return;
@ -582,7 +582,7 @@ void IncreaseDate()
return;
_cur_year = ymd.year;
/* yes, call various yearly loops */
/* yes, call various yearly loops */
PlayersYearlyLoop();
TrainsYearlyLoop();
@ -648,14 +648,14 @@ static void Save_NAME()
if (*b) {
SlSetArrayIndex(i);
SlArray(b, strlen(b), SLE_UINT8);
}
}
}
}
static void Load_NAME()
{
int index;
while ((index = SlIterateArray()) != -1) {
SlArray(_name_array[index],SlGetFieldLength(),SLE_UINT8);
}
@ -679,7 +679,7 @@ static const byte _game_opt_desc[] = {
// Save load game options
static void SaveLoad_OPTS()
{
SlObject(&_opt, _game_opt_desc);
SlObject(&_opt, _game_opt_desc);
}

View File

@ -36,7 +36,7 @@ struct TrackPathFinder {
TPFEnumProc *enum_proc;
void *userdata;
RememberData rd;
int the_dir;

View File

@ -13,7 +13,7 @@
extern void StartupEconomy();
static const SpriteID cheeks_table[4] = {
0x325, 0x326,
0x325, 0x326,
0x390, 0x3B0,
};
@ -60,10 +60,10 @@ void DrawPlayerFace(uint32 face, int color, int x, int y)
if (!(flag & 2)) {
if (!(flag & 1)) {
DrawSprite(high+((val1 * 12 >> 4) + 0x832B), x, y);
DrawSprite(high+((val1 * 12 >> 4) + 0x832B), x, y);
} else {
DrawSprite(high+(val1 + 0x8337), x, y);
}
}
} else {
if (!(flag & 1)) {
DrawSprite(high+((val1 * 11 >> 4) + 0x839A), x, y);
@ -80,11 +80,11 @@ void DrawPlayerFace(uint32 face, int color, int x, int y)
if (!(flag&1)) {
val2 = ((val&0xF) * 15 >> 4);
if (val2 < 3) {
DrawSprite((flag&2 ? 0x397 : 0x367) + val2, x, y);
/* skip the rest */
goto skip_mouth;
goto skip_mouth;
}
val2 -= 3;
@ -148,7 +148,7 @@ void DrawPlayerFace(uint32 face, int color, int x, int y)
} else {
DrawSprite(0x378 + ((val&3)*3>>2), x, y);
DrawSprite(0x37B + ((val>>2)&3), x, y);
val >>= 4;
if (val < 3) {
DrawSprite((flag&2 ? 0x3D1 : 0x37F) + val, x, y);
@ -198,14 +198,14 @@ static void SubtractMoneyFromAnyPlayer(Player *p, int32 cost)
{
p->money64 -= cost;
UpdatePlayerMoney32(p);
p->yearly_expenses[0][_yearly_expenses_type] += cost;
if ( ( 1 << _yearly_expenses_type ) & (1<<7|1<<8|1<<9|1<<10))
p->cur_economy.income -= cost;
else if (( 1 << _yearly_expenses_type ) & (1<<2|1<<3|1<<4|1<<5|1<<6|1<<11))
p->cur_economy.expenses -= cost;
InvalidatePlayerWindows(p);
}
@ -236,13 +236,13 @@ void UpdatePlayerMoney32(Player *p)
else if (p->money64 > 2000000000)
p->player_money = 2000000000;
else
p->player_money = (int32)p->money64;
p->player_money = (int32)p->money64;
}
void GetNameOfOwner(byte owner, uint tile)
{
SET_DPARAM8(2, owner);
if (owner != OWNER_TOWN) {
if (owner >= 8)
SET_DPARAM16(0, STR_0150_SOMEONE);
@ -274,10 +274,10 @@ bool CheckTileOwnership(uint tile)
{
byte owner = _map_owner[tile];
assert(owner <= OWNER_WATER);
if (owner == _current_player)
if (owner == _current_player)
return true;
_error_message = STR_013B_OWNED_BY;
// no need to get the name of the owner unless we're the local player (saves some time)
if (_current_player == _local_player)
GetNameOfOwner(owner, tile);
@ -330,11 +330,11 @@ set_name:;
return;
}
bad_town_name:;
if (p->president_name_1 == SPECSTR_PRESIDENT_NAME) {
str = SPECSTR_ANDCO_NAME;
strp = p->president_name_2;
goto set_name;
goto set_name;
} else {
str = SPECSTR_ANDCO_NAME;
strp = Random();
@ -371,7 +371,7 @@ static byte GeneratePlayerColor()
do {
for(j=0; j!=15; j++) {
if (_color_sort[colors[j]] < _color_sort[colors[j+1]]) {
COLOR_SWAP(j,j+1);
COLOR_SWAP(j,j+1);
}
}
} while (--i);
@ -382,7 +382,7 @@ static byte GeneratePlayerColor()
for(i=0; i!=16; i++) if (colors[i] == pcolor) {
colors[i] = 0xFF;
t2 = _color_similar_1[pcolor];
t2 = _color_similar_1[pcolor];
if (t2 == 0xFF) break;
for(i=0; i!=15; i++) {
if (colors[i] == t2) {
@ -391,7 +391,7 @@ static byte GeneratePlayerColor()
}
}
t2 = _color_similar_2[pcolor];
t2 = _color_similar_2[pcolor];
if (t2 == 0xFF) break;
for(i=0; i!=15; i++) {
if (colors[i] == t2) {
@ -422,7 +422,7 @@ restart:;
p->president_name_2 = Random();
p->president_name_1 = SPECSTR_PRESIDENT_NAME;
SET_DPARAM32(0, p->president_name_2);
GetString(buffer, p->president_name_1);
if (strlen(buffer) >= 32 || GetStringWidth(buffer) >= 94)
@ -464,7 +464,7 @@ Player *DoStartupNewPlayer(bool is_ai)
p = AllocatePlayer();
if (p == NULL) return NULL;
index = p->index;
// Make a color
@ -472,7 +472,7 @@ Player *DoStartupNewPlayer(bool is_ai)
_player_colors[index] = p->player_color;
p->name_1 = STR_SV_UNNAMED;
p->is_active = true;
p->money64 = p->player_money = p->current_loan = 100000;
p->is_ai = is_ai;
@ -501,7 +501,7 @@ static void MaybeStartNewPlayer()
{
uint n;
Player *p;
// count number of competitors
n = 0;
for(p=_players; p!=endof(_players); p++)
@ -511,7 +511,7 @@ static void MaybeStartNewPlayer()
// when there's a lot of computers in game, the probability that a new one starts is lower
if (n < (uint)_opt.diff.max_no_competitors && n < RandomRange(_opt.diff.max_no_competitors + 2))
DoStartupNewPlayer(true);
// The next AI starts like the difficulty setting said, with +2 month max
_next_competitor_start = _opt.diff.competitor_start_time * 90 * DAY_TICKS + RandomRange(60 * DAY_TICKS) + 1;
}
@ -531,20 +531,20 @@ void OnTick_Players()
if (_game_mode == GM_EDITOR)
return;
p = DEREF_PLAYER(_cur_player_tick_index);
_cur_player_tick_index = (_cur_player_tick_index + 1) % MAX_PLAYERS;
if (p->name_1 != 0) GenerateCompanyName(p);
if (_game_mode != GM_MENU && !--_next_competitor_start) {
MaybeStartNewPlayer();
MaybeStartNewPlayer();
}
}
void RunOtherPlayersLoop()
{
Player *p;
_is_ai_player = true;
FOR_ALL_PLAYERS(p) {
@ -634,7 +634,7 @@ int32 CmdPlayerCtrl(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (!(flags & DC_EXEC))
return 0;
switch(p1 & 0xff) {
case 0: // make new player
p = DoStartupNewPlayer(false);
@ -672,7 +672,7 @@ static const byte _player_desc[] = {
SLE_VAR(Player,president_name_2,SLE_UINT32),
SLE_VAR(Player,face, SLE_UINT32),
// money was changed to a 64 bit field in savegame version 1.
SLE_CONDVAR(Player,money64, SLE_VAR_I64 | SLE_FILE_I32, 0, 0),
SLE_CONDVAR(Player,money64, SLE_INT64, 1, 255),
@ -722,7 +722,7 @@ static const byte _player_economy_desc[] = {
SLE_VAR(PlayerEconomyEntry,delivered_cargo, SLE_INT32),
SLE_VAR(PlayerEconomyEntry,performance_history, SLE_INT32),
SLE_END()
};
@ -817,7 +817,7 @@ static void Load_PLYR()
{
int index;
while ((index = SlIterateArray()) != -1) {
Player *p = DEREF_PLAYER(index);
Player *p = DEREF_PLAYER(index);
p->is_ai = (index != 0);
SaveLoad_PLYR(p);
_player_colors[index] = p->player_color;

View File

@ -150,7 +150,7 @@ void InsSort_Clear(Queue* q, bool free_values) {
prev = node;
node = node->next;
free(prev);
}
q->data.inssort.first = NULL;
}
@ -283,7 +283,7 @@ bool BinaryHeap_Push(Queue* q, void* item, int priority) {
if (q->data.binaryheap.size == q->data.binaryheap.max_size)
return false;
assert(q->data.binaryheap.size < q->data.binaryheap.max_size);
if (q->data.binaryheap.elements[q->data.binaryheap.size >> BINARY_HEAP_BLOCKSIZE_BITS] == NULL) {
/* The currently allocated blocks are full, allocate a new one */
assert((q->data.binaryheap.size & BINARY_HEAP_BLOCKSIZE_MASK) == 0);
@ -466,14 +466,14 @@ void delete_Hash(Hash* h, bool free_values) {
if (h->buckets_in_use[i]) {
HashNode* node;
/* Free the first value */
if (free_values)
if (free_values)
free(h->buckets[i].value);
node = h->buckets[i].next;
while (node != NULL) {
HashNode* prev = node;
node = node->next;
/* Free the value */
if (free_values)
if (free_values)
free(prev->value);
/* Free the node */
free(prev);

View File

@ -51,7 +51,7 @@ struct Queue{
Queue_ClearProc* clear;
/* Frees the queue, by reclaiming all memory allocated by it. After
* this it is no longer usable. If free_items is true, any remaining
* items are free()'d too.
* items are free()'d too.
*/
Queue_FreeProc* free;

View File

@ -42,7 +42,7 @@ enum { /* These values are bitmasks for the map5 byte */
* 11 ????dd => Depot
*
* abcdef is a bitmask, which contains ones for all present tracks. Below the
* value for each track is given.
* value for each track is given.
*/
/* 4
@ -52,7 +52,7 @@ enum { /* These values are bitmasks for the map5 byte */
* | \ / |
* | \ / |
* 16| \ |32
* | / \2 |
* | / \2 |
* | / \ |
* | / \ |
* |/ \|
@ -62,7 +62,7 @@ enum { /* These values are bitmasks for the map5 byte */
// Constants for lower part of Map2 byte.
enum RailMap2Lower4 {
enum RailMap2Lower4 {
RAIL_MAP2LO_GROUND_MASK = 0xF,
RAIL_GROUND_BROWN = 0,
RAIL_GROUND_GREEN = 1,
@ -81,7 +81,7 @@ enum RailMap2Lower4 {
/* MAP2 byte: abcd???? => Signal On? Same coding as map3lo
* MAP3LO byte: abcd???? => Signal Exists?
* MAP3LO byte: abcd???? => Signal Exists?
* a and b are for diagonals, upper and left,
* one for each direction. (ie a == NE->SW, b ==
* SW->NE, or v.v., I don't know. b and c are
@ -91,7 +91,7 @@ enum RailMap2Lower4 {
* MAP5: 00abcdef => rail
* 01abcdef => rail w/ signals
* 10uuuuuu => unused
* 11uuuudd => rail depot
* 11uuuudd => rail depot
*/
static bool CheckTrackCombination(byte map5, byte trackbits, byte flags)
@ -99,7 +99,7 @@ static bool CheckTrackCombination(byte map5, byte trackbits, byte flags)
_error_message = STR_1001_IMPOSSIBLE_TRACK_COMBINATION;
if ((map5&RAIL_TYPE_MASK) == RAIL_TYPE_SIGNALS) {
if (map5 & trackbits) {
_error_message = STR_1007_ALREADY_BUILT;
return false;
@ -112,11 +112,11 @@ static bool CheckTrackCombination(byte map5, byte trackbits, byte flags)
_error_message = STR_1007_ALREADY_BUILT;
if (map5 & trackbits)
return false;
// Computer players are not allowed to intersect pieces of rail.
if (!(flags&DC_NO_RAIL_OVERLAP))
return true;
map5 |= trackbits;
return (map5 == (RAIL_BIT_UPPER|RAIL_BIT_LOWER) || map5 == (RAIL_BIT_LEFT|RAIL_BIT_RIGHT));
} else {
@ -138,12 +138,12 @@ static const byte _valid_tileh_slopes[4][15] = {
0,
RAIL_BIT_DIAG2,
RAIL_BIT_LOWER,
RAIL_BIT_LOWER,
RAIL_BIT_DIAG2,
0,
RAIL_BIT_LEFT,
RAIL_BIT_DIAG1,
RAIL_BIT_UPPER,
RAIL_BIT_RIGHT,
@ -177,7 +177,7 @@ static const byte _valid_tileh_slopes[4][15] = {
RAIL_BIT_LEFT,
RAIL_BIT_LOWER,
RAIL_BIT_DIAG2|RAIL_BIT_LEFT|RAIL_BIT_LOWER,
RAIL_BIT_RIGHT,
RAIL_BIT_DIAG1|RAIL_BIT_DIAG2|RAIL_BIT_UPPER|RAIL_BIT_LOWER|RAIL_BIT_LEFT|RAIL_BIT_RIGHT,
RAIL_BIT_DIAG1|RAIL_BIT_RIGHT|RAIL_BIT_LOWER,
@ -213,7 +213,7 @@ uint GetRailFoundation(uint tileh, uint bits)
if ((~_valid_tileh_slopes[1][tileh] & bits) == 0)
return tileh;
if ( ((i=0, tileh == 1) || (i+=2, tileh == 2) || (i+=2, tileh == 4) || (i+=2, tileh == 8)) && (bits == RAIL_BIT_DIAG1 || (i++, bits == RAIL_BIT_DIAG2)))
if ( ((i=0, tileh == 1) || (i+=2, tileh == 2) || (i+=2, tileh == 4) || (i+=2, tileh == 8)) && (bits == RAIL_BIT_DIAG1 || (i++, bits == RAIL_BIT_DIAG2)))
return i + 15;
return 0;
@ -234,10 +234,10 @@ static uint32 CheckRailSlope(int tileh, uint rail_bits, uint existing, uint tile
// no special foundation
if ((~_valid_tileh_slopes[0][tileh] & rail_bits) == 0)
return 0;
if (((~_valid_tileh_slopes[1][tileh] & rail_bits) == 0) || // whole tile is leveled up
((rail_bits == RAIL_BIT_DIAG1 || rail_bits == RAIL_BIT_DIAG2) && (tileh == 1 || tileh == 2 || tileh == 4 || tileh == 8))) { // partly up
return existing ? 0 : _price.terraform;
return existing ? 0 : _price.terraform;
}
}
return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION);
@ -266,7 +266,7 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
tile = ti.tile;
// allow building rail under bridge
if (ti.type != MP_TUNNELBRIDGE && !EnsureNoVehicle(tile))
if (ti.type != MP_TUNNELBRIDGE && !EnsureNoVehicle(tile))
return CMD_ERROR;
if (ti.type == MP_TUNNELBRIDGE) {
@ -311,7 +311,7 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
return _price.build_rail;
ModifyTile(tile,
MP_SETTYPE(MP_STREET) |
MP_SETTYPE(MP_STREET) |
MP_MAP3LO | MP_MAP3HI | MP_MAPOWNER_CURRENT | MP_MAP5,
_map_owner[tile], /* map3_lo */
p1, /* map3_hi */
@ -326,7 +326,7 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
} else if (ti.type == MP_RAILWAY) {
/* BUILD ON RAILWAY CODE */
if (_map_owner[tile] != _current_player || (byte)(_map3_lo[tile]&0xF) != rail_type)
if (_map_owner[tile] != _current_player || (byte)(_map3_lo[tile]&0xF) != rail_type)
goto need_clear;
if (!CheckTrackCombination(ti.map5, rail_bit, (byte)flags))
return CMD_ERROR;
@ -396,7 +396,7 @@ static const byte _signals_table_other[] = {
};
static const byte _signals_table_both[] = {
0xC0, 0xC0, 0xC0, 0x30, 0xC0, 0x30, 0, 0, // both directions combined
0xC0, 0xC0, 0xC0, 0x30, 0xC0, 0x30, 0, 0, // both directions combined
0xC0, 0xC0, 0xC0, 0x30, 0xC0, 0x30, 0, 0
};
@ -426,7 +426,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
return CMD_ERROR;
// allow building rail under bridge
if (ti.type != MP_TUNNELBRIDGE && !EnsureNoVehicle(tile))
if (ti.type != MP_TUNNELBRIDGE && !EnsureNoVehicle(tile))
return CMD_ERROR;
if (ti.type == MP_TUNNELBRIDGE) {
@ -441,7 +441,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (!(flags & DC_EXEC))
return _price.remove_rail;
_map_owner[tile] = OWNER_NONE;
_map5[tile] = ti.map5 & 0xC7;
} else if (ti.type == MP_STREET) {
@ -497,7 +497,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
skip_mark_dirty:;
SetSignalsOnBothDir(tile, (byte)p2);
return _price.remove_rail;
}
@ -506,7 +506,7 @@ static const struct {
int8 yinc[16];
byte initial[16];
} _railbit = {{
// 0 1 2 3 4 5
// 0 1 2 3 4 5
16, 0,-16, 0, 16, 0, 0, 0,
-16, 0, 0, 16, 0,-16, 0, 0,
},{
@ -537,7 +537,7 @@ int32 CmdBuildRailroadTrack(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (flags & DC_EXEC)
SndPlayTileFx(0x1E, TILE_FROM_XY(x,y));
/* unpack end point */
sx = (p1 & 0xFFFF) & ~0xF;
sy = (p1 >> 16) & ~0xF;
@ -558,10 +558,10 @@ int32 CmdBuildRailroadTrack(int x, int y, uint32 flags, uint32 p1, uint32 p2)
x += _railbit.xinc[railbit];
y += _railbit.yinc[railbit];
// toggle railbit for the diagonal tiles
if (railbit & 0x6) railbit ^= 1;
}
}
if (total_cost == 0)
return CMD_ERROR;
@ -587,7 +587,7 @@ int32 CmdRemoveRailroadTrack(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (flags & DC_EXEC)
SndPlayTileFx(0x1E, TILE_FROM_XY(x,y));
/* unpack start point */
sx = (p1 & 0xFFFF) & ~0xF;
sy = (p1 >> 16) & ~0xF;
@ -603,7 +603,7 @@ int32 CmdRemoveRailroadTrack(int x, int y, uint32 flags, uint32 p1, uint32 p2)
y += _railbit.yinc[railbit];
// toggle railbit for the diagonal tiles
if (railbit & 0x6) railbit ^= 1;
}
}
if (total_cost == 0)
return CMD_ERROR;
@ -643,14 +643,14 @@ int32 CmdBuildTrainDepot(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (flags & DC_EXEC) {
if (_current_player == _local_player)
_last_built_train_depot_tile = (TileIndex)tile;
ModifyTile(tile,
ModifyTile(tile,
MP_SETTYPE(MP_RAILWAY) |
MP_MAP3LO | MP_MAPOWNER_CURRENT | MP_MAP5,
p1, /* map3_lo */
p2 | RAIL_TYPE_DEPOT /* map5 */
);
dep->xy = tile;
dep->town_index = ClosestTownFromTile(tile, (uint)-1)->index;
@ -688,7 +688,7 @@ static Checkpoint *FindDeletedCheckpointCloseTo(uint tile)
for(cp = _checkpoints; cp != endof(_checkpoints); cp++) {
if (cp->deleted && cp->xy) {
cur_dist = GetTileDist(tile, cp->xy);
cur_dist = GetTileDist(tile, cp->xy);
if (cur_dist < thres) {
thres = cur_dist;
best = cp;
@ -714,7 +714,7 @@ int32 CmdBuildTrainCheckpoint(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (!CheckTileOwnership(tile))
return CMD_ERROR;
if (!EnsureNoVehicle(tile)) return CMD_ERROR;
tileh = GetTileSlope(tile, NULL);
@ -733,10 +733,10 @@ int32 CmdBuildTrainCheckpoint(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (flags & DC_EXEC) {
ModifyTile(tile, MP_MAP5, RAIL_TYPE_CHECKPOINT | dir);
cp->deleted = 0;
cp->xy = tile;
if (cp->town_or_string == 0) MakeDefaultCheckpointName(cp); else RedrawCheckpointSign(cp);
UpdateCheckpointSign(cp);
RedrawCheckpointSign(cp);
@ -848,13 +848,13 @@ int32 CmdBuildSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
byte m5;
int32 cost;
int track = p1 & 0x7;
assert(track >= 0 && track < 6); // only 6 possible track-combinations
SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
tile = TILE_FROM_XY(x,y);
if (!EnsureNoVehicle(tile))
return CMD_ERROR;
@ -867,7 +867,7 @@ int32 CmdBuildSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
// check rail combination
{
byte m = m5 & RAIL_BIT_MASK;
if (m != RAIL_BIT_DIAG1 && m != RAIL_BIT_DIAG2 && m != RAIL_BIT_UPPER && m != RAIL_BIT_LOWER &&
if (m != RAIL_BIT_DIAG1 && m != RAIL_BIT_DIAG2 && m != RAIL_BIT_UPPER && m != RAIL_BIT_LOWER &&
m != RAIL_BIT_LEFT && m != RAIL_BIT_RIGHT && m != (RAIL_BIT_UPPER|RAIL_BIT_LOWER) && m != (RAIL_BIT_LEFT|RAIL_BIT_RIGHT))
return CMD_ERROR;
}
@ -886,7 +886,7 @@ int32 CmdBuildSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
}
if (flags & DC_EXEC) {
if (!(m5 & RAIL_TYPE_SIGNALS)) { // if there are no signals yet present on the track
_map5[tile] |= RAIL_TYPE_SIGNALS; // change into signals
@ -925,7 +925,7 @@ int32 CmdBuildSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
// convert between signal<->semaphores when dragging
HASBIT(p1, 3) ? SETBIT(_map3_hi[tile], 2) : CLRBIT(_map3_hi[tile], 2);
}
MarkTileDirtyByTile(tile);
SetSignalsOnBothDir(tile, track);
}
@ -972,13 +972,13 @@ int32 CmdBuildManySignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
* the other side alone */
switch (signals) {
case 0x20: case 8: /* east corner (N-S), south corner (W-E) */
if (_map3_lo[tile]&0x30)
if (_map3_lo[tile]&0x30)
signals = _map3_lo[tile]&0x30;
else
signals = 0x30 | (_map3_lo[tile]&0xC0);
break;
case 0x10: case 4: /* west corner (N-S), north corner (W-E) */
if (_map3_lo[tile]&0xC0)
if (_map3_lo[tile]&0xC0)
signals = _map3_lo[tile]&0xC0;
else
signals = 0xC0 | (_map3_lo[tile]&0x30);
@ -1001,7 +1001,7 @@ int32 CmdBuildManySignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
**********
* railbit - direction of autorail
* semaphores - semaphores or signals
* signals - is there a signal/semaphore on the first tile, copy its style (two-way/single-way)
* signals - is there a signal/semaphore on the first tile, copy its style (two-way/single-way)
and convert all others to semaphore/signal
* mode - 1 remove signals, 0 build signals */
signal_ctr = total_cost = 0;
@ -1026,9 +1026,9 @@ int32 CmdBuildManySignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
break;
x += _railbit.xinc[railbit];
y += _railbit.yinc[railbit];
y += _railbit.yinc[railbit];
signal_ctr++;
// toggle railbit for the diagonal tiles (|, -- tracks)
if (railbit & 0x6) railbit ^= 1;
}
@ -1050,7 +1050,7 @@ int32 CmdRemoveSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
FindLandscapeHeight(&ti, x, y);
tile = ti.tile;
/* No vehicle behind. */
if (!EnsureNoVehicle(tile))
return CMD_ERROR;
@ -1073,18 +1073,18 @@ int32 CmdRemoveSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2)
_map5[tile] &= ~RAIL_TYPE_SIGNALS;
_map2[tile] &= ~0xF0;
CLRBIT(_map3_hi[tile], 2); // remove any possible semaphores
/* TTDBUG: this code contains a bug, if a tile contains 2 signals
* on separate tracks, it won't work properly for the 2nd track */
SetSignalsOnBothDir(tile, FIND_FIRST_BIT(bits & RAIL_BIT_MASK));
* on separate tracks, it won't work properly for the 2nd track */
SetSignalsOnBothDir(tile, FIND_FIRST_BIT(bits & RAIL_BIT_MASK));
MarkTileDirtyByTile(tile);
}
return _price.remove_signals;
}
typedef int32 DoConvertRailProc(uint tile, uint totype, bool exec);
typedef int32 DoConvertRailProc(uint tile, uint totype, bool exec);
static int32 DoConvertRail(uint tile, uint totype, bool exec)
{
@ -1120,7 +1120,7 @@ int32 CmdConvertRail(int ex, int ey, uint32 flags, uint32 p1, uint32 p2)
sy = GET_TILE_Y(p1)*16;
if (ex < sx) intswap(ex, sx);
if (ey < sy) intswap(ey, sy);
money = GetAvailableMoneyForCommand();
ret = false;
cost = 0;
@ -1128,13 +1128,13 @@ int32 CmdConvertRail(int ex, int ey, uint32 flags, uint32 p1, uint32 p2)
for(y=sy; y<=ey; y+=16) {
uint tile = TILE_FROM_XY(x,y);
DoConvertRailProc *p;
if (IS_TILETYPE(tile, MP_RAILWAY)) p = DoConvertRail;
else if (IS_TILETYPE(tile, MP_STATION)) p = DoConvertStationRail;
else if (IS_TILETYPE(tile, MP_STREET)) p = DoConvertStreetRail;
else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) p = DoConvertTunnelBridgeRail;
else continue;
ret = p(tile, p2, false);
if (ret == CMD_ERROR) continue;
cost += ret;
@ -1185,7 +1185,7 @@ static int32 ClearTile_Track(uint tile, byte flags) {
}
cost = 0;
if ( (m5 & RAIL_TYPE_MASK) == RAIL_TYPE_NORMAL) {
regular_track:;
@ -1245,7 +1245,7 @@ static const SpriteID _signal_base_sprites[16] = {
0x1323,
0x1333,
0x1343,
0x13C6,
0x13D6,
0x13E6,
@ -1283,7 +1283,7 @@ static void DrawTrackFence_NW(TileInfo *ti)
image = 0x51B;
}
}
AddSortableSpriteToDraw(image | _drawtile_track_palette,
AddSortableSpriteToDraw(image | _drawtile_track_palette,
ti->x, ti->y+1, 16, 1, 4, ti->z);
}
@ -1296,7 +1296,7 @@ static void DrawTrackFence_SE(TileInfo *ti)
image = 0x51B;
}
}
AddSortableSpriteToDraw(image | _drawtile_track_palette,
AddSortableSpriteToDraw(image | _drawtile_track_palette,
ti->x, ti->y+15, 16, 1, 4, ti->z);
}
@ -1315,7 +1315,7 @@ static void DrawTrackFence_NE(TileInfo *ti)
image = 0x51C;
}
}
AddSortableSpriteToDraw(image | _drawtile_track_palette,
AddSortableSpriteToDraw(image | _drawtile_track_palette,
ti->x+1, ti->y, 1, 16, 4, ti->z);
}
@ -1328,7 +1328,7 @@ static void DrawTrackFence_SW(TileInfo *ti)
image = 0x51C;
}
}
AddSortableSpriteToDraw(image | _drawtile_track_palette,
AddSortableSpriteToDraw(image | _drawtile_track_palette,
ti->x+15, ti->y, 1, 16, 4, ti->z);
}
@ -1383,21 +1383,21 @@ typedef void DetailedTrackProc(TileInfo *ti);
DetailedTrackProc * const _detailed_track_proc[16] = {
DetTrackDrawProc_Null,
DetTrackDrawProc_Null,
DrawTrackFence_NW,
DrawTrackFence_SE,
DrawTrackFence_NW_SE,
DrawTrackFence_NE,
DrawTrackFence_SW,
DrawTrackFence_NE_SW,
DrawTrackFence_NS_1,
DrawTrackFence_NS_2,
DrawTrackFence_WE_1,
DrawTrackFence_WE_2,
DetTrackDrawProc_Null,
DetTrackDrawProc_Null,
DetTrackDrawProc_Null,
@ -1418,7 +1418,7 @@ static void DrawTile_Track(TileInfo *ti)
bool special;
m5 &= RAIL_BIT_MASK;
special = false;
// select the sprite to use based on the map5 byte.
@ -1429,10 +1429,10 @@ static void DrawTile_Track(TileInfo *ti)
(image++, m5 == RAIL_BIT_RIGHT) ||
(image++, m5 == RAIL_BIT_LEFT) ||
(image++, m5 == (RAIL_BIT_DIAG1|RAIL_BIT_DIAG2)) ||
(image = 0x40B, m5 == (RAIL_BIT_UPPER|RAIL_BIT_LOWER)) ||
(image++, m5 == (RAIL_BIT_LEFT|RAIL_BIT_RIGHT)) ||
(special=true, false) ||
(image = 0x3FA, !(m5 & (RAIL_BIT_RIGHT|RAIL_BIT_UPPER|RAIL_BIT_DIAG1))) ||
@ -1444,7 +1444,7 @@ static void DrawTile_Track(TileInfo *ti)
if (ti->tileh != 0) {
int f = GetRailFoundation(ti->tileh, ti->map5 & 0x3F);
if (f) DrawFoundation(ti, f);
// default sloped sprites..
if (ti->tileh != 0) image = _track_sloped_sprites[ti->tileh - 1] + 0x3F3;
}
@ -1515,7 +1515,7 @@ static void DrawTile_Track(TileInfo *ti)
if (!(m5 & (RAIL_TYPE_MASK&~RAIL_TYPE_SPECIAL)))
return;
if (ti->tileh != 0) { DrawFoundation(ti, ti->tileh); }
s = _track_depot_layout_table[m5 & 0x3F];
@ -1541,9 +1541,9 @@ static void DrawTile_Track(TileInfo *ti)
if (image & 0x8000)
image |= _drawtile_track_palette;
image += tracktype_offs;
if (!(_display_opt & DO_TRANS_BUILDINGS))
if (!(_display_opt & DO_TRANS_BUILDINGS))
image = (image & 0x3FFF) | 0x3224000;
AddSortableSpriteToDraw(image, ti->x | drss->subcoord_x,
AddSortableSpriteToDraw(image, ti->x | drss->subcoord_x,
ti->y | drss->subcoord_y, drss->width, drss->height, 0x17, ti->z);
drss++;
}
@ -1567,7 +1567,7 @@ void DrawTrainDepotSprite(int x, int y, int image, int railtype)
y+=17;
img = *(uint16*)t;
if (img & 0x8000) img = (img & 0x7FFF) + railtype;
if (img & 0x8000) img = (img & 0x7FFF) + railtype;
DrawSprite(img, x, y);
for(dtss = (DrawTrackSeqStruct *)(t + sizeof(uint16)); dtss->image != 0; dtss++) {
@ -1586,7 +1586,7 @@ typedef struct SetSignalsData {
int cur_stack;
bool stop;
bool has_presignal;
// presignal info
int presignal_exits;
int presignal_exits_free;
@ -1607,7 +1607,7 @@ static bool SetSignalsEnumProc(uint tile, SetSignalsData *ssd, int track, uint l
if (IS_TILETYPE(tile, MP_RAILWAY)) {
if ((_map5[tile]&RAIL_TYPE_MASK) == RAIL_TYPE_SIGNALS) {
if ((_map3_lo[tile] & _signals_table_both[track]) != 0) {
// is the signal pointing in to the segment existing?
if ((_map3_lo[tile] & _signals_table[track]) != 0) {
// yes, add the signal to the list of signals
@ -1620,7 +1620,7 @@ static bool SetSignalsEnumProc(uint tile, SetSignalsData *ssd, int track, uint l
// remember if this block has a presignal.
ssd->has_presignal |= (_map3_hi[tile]&1);
}
// is this an exit signal that points out from the segment?
if ((_map3_hi[tile]&2) && _map3_lo[tile]&_signals_table_other[track]) {
ssd->presignal_exits++;
@ -1644,7 +1644,7 @@ static void SetSignalsAfterProc(TrackPathFinder *tpf)
TrackPathFinderLink *link;
ssd->stop = false;
// for each train, check if it is in the segment.
// then we know that the signal should be red.
FOR_ALL_VEHICLES(v) {
@ -1653,9 +1653,9 @@ static void SetSignalsAfterProc(TrackPathFinder *tpf)
tile = v->tile;
if (v->u.rail.track == 0x40) { tile = GetVehicleOutOfTunnelTile(v); }
hash = PATHFIND_HASH_TILE(tile);
val = tpf->hash_head[hash];
if (val == 0)
continue;
@ -1723,7 +1723,7 @@ static void ChangeSignalStates(SetSignalsData *ssd)
make_red:
// turn red
if ( (bit&m2) == 0 )
continue;
continue;
} else {
// turn green
if ( (bit&m2) != 0 )
@ -1741,7 +1741,7 @@ make_red:
printf("NUM_SSD_STACK too small\n");
}
}
// it changed, so toggle it
_map2[tile] = m2 ^ bit;
MarkTileDirtyByTile(tile);
@ -1767,7 +1767,7 @@ bool UpdateSignalsOnSegment(uint tile, byte direction)
// remember the result only for the first iteration.
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;
@ -1776,7 +1776,7 @@ bool UpdateSignalsOnSegment(uint tile, byte direction)
tile = ssd.next_tile[--ssd.cur_stack];
direction = ssd.next_dir[ssd.cur_stack];
}
return (bool)result;
}
@ -1789,7 +1789,7 @@ void SetSignalsOnBothDir(uint tile, byte track)
UpdateSignalsOnSegment(tile, _search_dir_2[track]);
}
uint GetSlopeZ_Track(TileInfo *ti)
uint GetSlopeZ_Track(TileInfo *ti)
{
uint z = ti->z;
int th = ti->tileh;
@ -1815,7 +1815,7 @@ uint GetSlopeZ_Track(TileInfo *ti)
return z;
}
uint GetSlopeTileh_Track(TileInfo *ti)
uint GetSlopeTileh_Track(TileInfo *ti)
{
// check if it's a foundation
if (ti->tileh != 0) {
@ -1882,7 +1882,7 @@ static void TileLoop_Track(uint tile)
if (m2 != RAIL_GROUND_BROWN) { /* wait until bottom is green */
/* determine direction of fence */
rail = _map5[tile] & RAIL_BIT_MASK;
if (rail == RAIL_BIT_UPPER) {
a2 = RAIL_GROUND_FENCE_HORIZ1;
} else if (rail == RAIL_BIT_LOWER) {
@ -1898,7 +1898,7 @@ static void TileLoop_Track(uint tile)
if (!IS_TILETYPE(tile + TILE_XY(0,-1), MP_RAILWAY) ||
owner != _map_owner[tile + TILE_XY(0,-1)] ||
(_map5[tile + TILE_XY(0,-1)]==RAIL_BIT_UPPER || _map5[tile + TILE_XY(0,-1)]==RAIL_BIT_LEFT))
a2 = RAIL_GROUND_FENCE_NW;
a2 = RAIL_GROUND_FENCE_NW;
}
if ( (!(rail&(RAIL_BIT_DIAG2|RAIL_BIT_LOWER|RAIL_BIT_RIGHT)) && (rail&RAIL_BIT_DIAG1)) || rail==(RAIL_BIT_UPPER|RAIL_BIT_LEFT)) {
@ -1984,7 +1984,7 @@ static void ClickTile_Track(uint tile)
ShowTrainDepotWindow(tile);
else if (IS_RAIL_CHECKPOINT(_map5[tile]))
ShowRenameCheckpointWindow(&_checkpoints[GetCheckpointByTile(tile)]);
}
static void GetTileDesc_Track(uint tile, TileDesc *td)
@ -2017,7 +2017,7 @@ static void ChangeTileOwner_Track(uint tile, byte old_player, byte new_player)
{
if (_map_owner[tile] != old_player)
return;
if (new_player != 255) {
_map_owner[tile] = new_player;
} else {
@ -2036,14 +2036,14 @@ uint32 VehicleEnter_Track(Vehicle *v, uint tile, int x, int y)
{
byte fract_coord;
int dir;
// this routine applies only to trains in depot tiles
if (v->type != VEH_Train || !IS_RAIL_DEPOT(_map5[tile]))
return 0;
/* depot direction */
dir = _map5[tile] & RAIL_DEPOT_DIR;
fract_coord = (x & 0xF) + ((y & 0xF) << 4);
if (_fractcoords_behind[dir] == fract_coord) {
/* make sure a train is not entering the tile from behind */

View File

@ -34,8 +34,8 @@ static void CcPlaySound1E(bool success, uint tile, uint32 p1, uint32 p2)
static void GenericPlaceRail(uint tile, int cmd)
{
DoCommandP(tile, _cur_railtype, cmd, CcPlaySound1E,
_remove_button_clicked ?
CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) | CMD_AUTO | CMD_NO_WATER :
_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
);
}
@ -76,7 +76,7 @@ static void PlaceExtraDepotRail(uint tile, uint16 extra)
if (b & 0xC0 || !(b & (extra >> 8)))
return;
DoCommandP(tile, _cur_railtype, extra & 0xFF, NULL, CMD_BUILD_SINGLE_RAIL | CMD_AUTO | CMD_NO_WATER);
DoCommandP(tile, _cur_railtype, extra & 0xFF, NULL, CMD_BUILD_SINGLE_RAIL | CMD_AUTO | CMD_NO_WATER);
}
static const uint16 _place_depot_extra[12] = {
@ -101,12 +101,12 @@ static void CcDepot(bool success, uint tile, uint32 p1, uint32 p2)
PlaceExtraDepotRail(tile, _place_depot_extra[dir + 4]);
PlaceExtraDepotRail(tile, _place_depot_extra[dir + 8]);
}
}
}
}
static void PlaceRail_Depot(uint tile)
{
DoCommandP(tile, _cur_railtype, _build_depot_direction, CcDepot,
DoCommandP(tile, _cur_railtype, _build_depot_direction, CcDepot,
CMD_BUILD_TRAIN_DEPOT | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_100E_CAN_T_BUILD_TRAIN_DEPOT));
}
@ -252,12 +252,12 @@ static const SpriteID _depot_cursors[] = {
static void BuildRailClick_Depot(Window *w)
{
if (HandlePlacePushButton(w, 11, _depot_cursors[_cur_railtype], 1, PlaceRail_Depot)) ShowBuildTrainDepotPicker();
if (HandlePlacePushButton(w, 11, _depot_cursors[_cur_railtype], 1, PlaceRail_Depot)) ShowBuildTrainDepotPicker();
}
static void BuildRailClick_Station(Window *w)
{
if (HandlePlacePushButton(w, 12, 0x514, 1, PlaceRail_Station)) ShowStationBuilder();
if (HandlePlacePushButton(w, 12, 0x514, 1, PlaceRail_Station)) ShowStationBuilder();
}
static void BuildRailClick_AutoSignals(Window *w)
@ -281,10 +281,10 @@ static void BuildRailClick_Remove(Window *w)
return;
SetWindowDirty(w);
SndPlayFx(0x13);
_thd.make_square_red = !!((w->click_state ^= (1 << 16)) & (1<<16));
_remove_button_clicked = (w->click_state & (1 << 16)) != 0;
// handle station builder
if( w->click_state & (1 << 12) )
{
@ -313,8 +313,8 @@ static void BuildRailClick_Convert(Window *w)
static void DoRailroadTrack(int mode)
{
DoCommandP(TILE_FROM_XY(_thd.selstart.x, _thd.selstart.y), PACK_POINT(_thd.selend.x, _thd.selend.y), (mode << 4) | _cur_railtype, NULL,
_remove_button_clicked ?
DoCommandP(TILE_FROM_XY(_thd.selstart.x, _thd.selstart.y), PACK_POINT(_thd.selend.x, _thd.selend.y), (mode << 4) | _cur_railtype, NULL,
_remove_button_clicked ?
CMD_REMOVE_RAILROAD_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) :
CMD_BUILD_RAILROAD_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1011_CAN_T_BUILD_RAILROAD_TRACK)
);
@ -335,11 +335,11 @@ static const BestFitStruct _bestfit[] = {
{0, M(0,1+8+16), M(2,1+4+32), 0}, // diag1 track
{1, M(3,2+8+32), M(1,2+4+16), 0}, // diag2 track
// one edge with rail
{0, M(0,1), 0, 0}, // diag1 track
{0, M(2,1), 0, 0}, // diag1 track
{1, M(1,2), 0, 0}, // diag2 track
{1, M(3,2), 0, 0}, // diag2 track
@ -394,7 +394,7 @@ int GetBestFit1x1(int x, int y)
};
tile += _tile_inc[i];
m[i] = 0;
if (IS_TILETYPE(tile, MP_RAILWAY) && _map5[tile] < 0x80)
if (IS_TILETYPE(tile, MP_RAILWAY) && _map5[tile] < 0x80)
m[i] = _map5[tile]&0x3F;
// handle tracks under bridge
@ -449,7 +449,7 @@ static bool Check2x1AutoRail(int mode)
int sxpy = (thd->selend.x & 0xF) + (thd->selend.y & 0xF);
int fxmy = _tile_fract_coords.x - _tile_fract_coords.y;
int sxmy = (thd->selend.x & 0xF) - (thd->selend.y & 0xF);
switch(mode) {
case 0:
if (fxpy >= 20 && sxpy <= 12) { SwapSelection(); DoRailroadTrack(0); return true; }
@ -459,7 +459,7 @@ static bool Check2x1AutoRail(int mode)
case 1:
if (fxmy > 3 && sxmy < -3) { SwapSelection(); DoRailroadTrack(0); return true; }
if (fxpy <= 12 && sxpy >= 20) { DoRailroadTrack(0); return true; }
break;
break;
case 2:
if (fxmy > 3 && sxmy < -3) { DoRailroadTrack(3); return true; }
@ -484,7 +484,7 @@ static void HandleAutodirPlacement()
if (thd->drawstyle == HT_RECT) {
int dx = thd->selstart.x - (thd->selend.x&~0xF);
int dy = thd->selstart.y - (thd->selend.y&~0xF);
if (dx == 0 && dy == 0 ) {
// 1x1 tile
bit = GetBestFit1x1(thd->selend.x, thd->selend.y);
@ -521,12 +521,12 @@ static void HandleAutoSignalPlacement()
int dx = thd->selstart.x - (thd->selend.x&~0xF);
int dy = thd->selstart.y - (thd->selend.y&~0xF);
if (dx == 0 && dy == 0 ) // 1x1 tile signals
GenericPlaceSignals(TILE_FROM_XY(thd->selend.x, thd->selend.y));
else { // signals have been dragged
if (thd->drawstyle == HT_RECT) { // X,Y direction
if (dx == 0)
if (dx == 0)
mode = VPM_FIX_X;
else if (dy == 0)
mode = VPM_FIX_Y;
@ -543,12 +543,12 @@ static void HandleAutoSignalPlacement()
/* _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(TILE_FROM_XY(thd->selstart.x, thd->selstart.y), TILE_FROM_XY(thd->selend.x, thd->selend.y),
(mode << 4) | (_remove_button_clicked + (_ctrl_pressed ? 8 : 0)) | (trackstat << 8) | (_patches.drag_signals_density << 24),
CcPlaySound1E,
DoCommandP(TILE_FROM_XY(thd->selstart.x, thd->selstart.y), TILE_FROM_XY(thd->selend.x, thd->selend.y),
(mode << 4) | (_remove_button_clicked + (_ctrl_pressed ? 8 : 0)) | (trackstat << 8) | (_patches.drag_signals_density << 24),
CcPlaySound1E,
(_remove_button_clicked ? CMD_BUILD_MANY_SIGNALS | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM) :
CMD_BUILD_MANY_SIGNALS | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE) ) );
}
CMD_BUILD_MANY_SIGNALS | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE) ) );
}
}
static OnButtonClick * const _build_railroad_button_proc[] = {
@ -805,7 +805,7 @@ void ShowBuildRailToolbar(int index, int button)
// don't recreate the window if we're clicking on a button and the window exists.
if (button < 0 || !(w = FindWindowById(WC_BUILD_TOOLBAR, 0)) || w->wndproc != BuildRailToolbWndProc) {
DeleteWindowById(WC_BUILD_TOOLBAR, 0);
DeleteWindowById(WC_BUILD_TOOLBAR, 0);
_cur_railtype = (byte)index;
w = AllocateWindowDesc(_build_rr_desc[index]);
}
@ -848,7 +848,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) {
}
bits |= (1<<20) << (_station_show_coverage);
w->click_state = bits;
if (_railstation.dragdrop) {
SetTileSelectSize(1, 1);
} else {
@ -858,12 +858,12 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) {
if(!_remove_button_clicked)
SetTileSelectSize(x, y);
}
if (_station_show_coverage)
SetTileSelectBigSize(-4, -4, 8, 8);
DrawWindowWidgets(w);
StationPickerDrawSprite(39, 42, _cur_railtype, 2);
StationPickerDrawSprite(107, 42, _cur_railtype, 3);
@ -874,7 +874,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) {
DrawStationCoverageAreaText(2, 166, (uint)-1);
} break;
case WE_CLICK: {
switch(e->click.widget) {
case 0:
@ -927,7 +927,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) {
break;
}
} break;
case WE_MOUSELOOP: {
if (WP(w,def_d).close) {
DeleteWindow(w);
@ -1013,7 +1013,7 @@ static void BuildTrainDepotWndProc(Window *w, WindowEvent *e)
break;
}
} break;
case WE_MOUSELOOP:
if (WP(w,def_d).close)
DeleteWindow(w);
@ -1047,7 +1047,7 @@ static void ShowBuildTrainDepotPicker()
void InitializeRailGui()
{
_build_depot_direction = 3;
_build_depot_direction = 3;
_railstation.numtracks = 1;
_railstation.platlength = 1;
_railstation.dragdrop = true;

View File

@ -4,7 +4,7 @@
//
// Next default values for new objects
//
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 104

View File

@ -25,7 +25,7 @@ bool HasTileRoadAt(uint tile, int i)
switch(GET_TILETYPE(tile)) {
case MP_STREET:
b = _map5[tile];
if ((b & 0xF0) == 0) {
} else if ((b & 0xF0) == 0x10) {
b = (b&8)?5:10;
@ -34,7 +34,7 @@ bool HasTileRoadAt(uint tile, int i)
} else
return false;
break;
case MP_STATION:
b = _map5[tile];
if (!IS_BYTE_INSIDE(b, 0x43, 0x43+8))
@ -93,7 +93,7 @@ static bool CheckAllowRemoveRoad(uint tile, uint br, bool *edge_road)
if (blocks&0x2A && HasTileRoadAt(TILE_ADDXY(tile, 0, 1), 0)) n |= 4;
if (blocks&0x19 && HasTileRoadAt(TILE_ADDXY(tile, 1, 0), 3)) n |= 2;
if (blocks&0x16 && HasTileRoadAt(TILE_ADDXY(tile, 0,-1), 2)) n |= 1;
// If 0 or 1 bits are set in n, or if no bits that match the bits to remove,
// then allow it
if ((n & (n-1)) != 0 && (n & br) != 0) {
@ -136,17 +136,17 @@ int32 CmdRemoveRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
int32 cost;
uint tile;
Town *t;
/* true if the roadpiece was always removeable,
/* true if the roadpiece was always removeable,
false if it was a center piece. Affects town ratings drop
*/
bool edge_road;
SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
FindLandscapeHeight(&ti, x, y);
tile = ti.tile;
t = ClosestTownFromTile(tile, (uint)-1); // needed for town rating penalty
// allow deleting road under bridge
if (ti.type != MP_TUNNELBRIDGE && !EnsureNoVehicle(tile))
return CMD_ERROR;
@ -190,26 +190,26 @@ int32 CmdRemoveRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
// limit the bits to delete to the existing bits.
if ((c &= ti.map5) == 0) goto return_error;
// calculate the cost
t2 = c;
cost = 0;
do {
if (t2&1) cost += _price.remove_road;
if (t2&1) cost += _price.remove_road;
} while(t2>>=1);
// check if you're allowed to remove the street owned by a town
// removal allowance depends on difficulty setting
// removal allowance depends on difficulty setting
if(_map_owner[tile] == OWNER_TOWN && _game_mode != GM_EDITOR) {
if (!CheckforTownRating(tile, flags, t, ROAD_REMOVE))
if (!CheckforTownRating(tile, flags, t, ROAD_REMOVE))
return CMD_ERROR;
}
if (flags & DC_EXEC) {
// checks if the owner is town than decrease town rating by 50 until you have
// checks if the owner is town than decrease town rating by 50 until you have
// a "Poor" town rating
if(_map_owner[tile] == OWNER_TOWN && _game_mode != GM_EDITOR)
ChangeTownRating(t, -_road_remove_cost[(byte)edge_road], -100);
ChangeTownRating(t, -_road_remove_cost[(byte)edge_road], -100);
_map5[tile] ^= c;
if ((_map5[tile]&0xF) == 0)
@ -218,12 +218,12 @@ int32 CmdRemoveRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
MarkTileDirtyByTile(tile);
}
return cost;
return cost;
} else if (!(ti.map5 & 0xE0)) {
byte c;
if (!(ti.map5 & 8)) {
c = 2;
c = 2;
if (p1 & 5) goto return_error;
} else {
c = 1;
@ -232,7 +232,7 @@ int32 CmdRemoveRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
cost = _price.remove_road * 2;
if (flags & DC_EXEC) {
ModifyTile(tile,
ModifyTile(tile,
MP_SETTYPE(MP_RAILWAY) |
MP_MAP2_CLEAR | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAP5,
_map3_hi[tile] & 0xF, /* map3_lo */
@ -257,7 +257,7 @@ enum {
ROAD_NE = 8, // NE road track
ROAD_ALL = (ROAD_NW | ROAD_SW | ROAD_SE | ROAD_NE)
};
static const byte _valid_tileh_slopes_road[3][15] = {
// set of normal ones
{
@ -266,9 +266,9 @@ static const byte _valid_tileh_slopes_road[3][15] = {
ROAD_NW | ROAD_SE, 0, 0,
ROAD_NW | ROAD_SE, 0, 0, // 9, 10, 11
ROAD_SW | ROAD_NE, 0, 0
},
},
// allowed road for an evenly raised platform
{
{
0,
ROAD_SW | ROAD_NW,
ROAD_SW | ROAD_SE,
@ -299,7 +299,7 @@ static const byte _valid_tileh_slopes_road[3][15] = {
};
static uint32 CheckRoadSlope(int tileh, byte *pieces, byte existing)
static uint32 CheckRoadSlope(int tileh, byte *pieces, byte existing)
{
if (!(tileh & 0x10)) {
byte road_bits = *pieces | existing;
@ -310,10 +310,10 @@ static uint32 CheckRoadSlope(int tileh, byte *pieces, byte existing)
if (tileh != 0) *pieces |= _valid_tileh_slopes_road[0][tileh];
return 0; // no extra cost
}
// foundation is used. Whole tile is leveled up
if ((~_valid_tileh_slopes_road[1][tileh] & road_bits) == 0) {
return existing ? 0 : _price.terraform;
return existing ? 0 : _price.terraform;
}
// partly leveled up tile, only if there's no road on that tile
@ -337,7 +337,7 @@ int32 CmdBuildRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
int32 cost;
byte pieces = (byte)p1, existing = 0;
uint tile;
SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
FindLandscapeHeight(&ti, x, y);
@ -557,7 +557,7 @@ int32 CmdRemoveLongRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
uint bits = (p2 & 4) ? ROAD_SE | ROAD_NW : ROAD_SW | ROAD_NE;
if (tile == end_tile && !(p2&2)) bits &= ROAD_NW | ROAD_NE;
if (tile == start_tile && (p2&1)) bits &= ROAD_SE | ROAD_SW;
// try to remove the halves.
if (bits) {
ret = DoCommandByTile(tile, bits, 0, flags, CMD_REMOVE_ROAD);
@ -578,7 +578,7 @@ int32 CmdRemoveLongRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
return cost;
}
/* Build a road depot
/* Build a road depot
* p1 - direction (0-3)
* p2 - unused
*/
@ -612,7 +612,7 @@ int32 CmdBuildRoadDepot(int x, int y, uint32 flags, uint32 p1, uint32 p2)
if (dep == NULL)
return CMD_ERROR;
if (flags & DC_EXEC) {
if (flags & DC_EXEC) {
if (_current_player == _local_player)
_last_built_road_depot_tile = (TileIndex)tile;
@ -665,10 +665,10 @@ static int32 ClearTile_Road(uint tile, byte flags) {
ret = DoCommandByTile(tile, (m5&8)?5:10, 0, flags, CMD_REMOVE_ROAD);
if (ret == CMD_ERROR)
return CMD_ERROR;
if (flags & DC_EXEC) {
DoCommandByTile(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
}
}
return ret;
} else {
@ -703,7 +703,7 @@ uint GetRoadFoundation(uint tileh, uint bits) {
return tileh;
// inclined sloped building
if ( ((i=0, tileh == 1) || (i+=2, tileh == 2) || (i+=2, tileh == 4) || (i+=2, tileh == 8)) &&
if ( ((i=0, tileh == 1) || (i+=2, tileh == 2) || (i+=2, tileh == 4) || (i+=2, tileh == 8)) &&
((bits == (ROAD_SW | ROAD_NE)) || (i++, bits == (ROAD_NW | ROAD_SE))))
return i + 15;
@ -723,7 +723,7 @@ const byte _road_sloped_sprites[14] = {
static void DrawTile_Road(TileInfo *ti)
{
uint32 image;
uint32 image;
byte m2;
const byte *s;
@ -733,7 +733,7 @@ static void DrawTile_Road(TileInfo *ti)
if (ti->tileh != 0) {
int f = GetRoadFoundation(ti->tileh, ti->map5 & 0xF);
if (f) DrawFoundation(ti, f);
// default sloped sprites..
if (ti->tileh != 0) {
image = _road_sloped_sprites[ti->tileh - 1] + 0x53F;
@ -747,7 +747,7 @@ static void DrawTile_Road(TileInfo *ti)
m2 = _map2[ti->tile] & 7;
if (m2 == 0) image |= 0x3178000;
if (_map3_hi[ti->tile] & 0x80) {
image += 19;
} else if (m2 > 1 && m2 != 6) {
@ -766,7 +766,7 @@ static void DrawTile_Road(TileInfo *ti)
}
drts = (const DrawRoadTileStruct*)_road_display_table[m2][ti->map5 & 0xF];
while ((image = drts->image) != 0) {
int x = ti->x | drts->subcoord_x;
int y = ti->y | drts->subcoord_y;
@ -800,7 +800,7 @@ static void DrawTile_Road(TileInfo *ti)
uint32 ormod;
int player;
const DrawRoadSeqStruct *drss;
if (ti->tileh != 0) { DrawFoundation(ti, ti->tileh); }
ormod = 0x315;
@ -809,7 +809,7 @@ static void DrawTile_Road(TileInfo *ti)
ormod = PLAYER_SPRITE_COLOR(player);
s = _road_display_datas[ti->map5 & 0xF];
DrawGroundSprite(*(uint32*)s);
s += sizeof(uint32);
drss = (DrawRoadSeqStruct*)s;
@ -818,7 +818,7 @@ static void DrawTile_Road(TileInfo *ti)
if (image & 0x8000)
image |= ormod;
AddSortableSpriteToDraw(image, ti->x | drss->subcoord_x,
AddSortableSpriteToDraw(image, ti->x | drss->subcoord_x,
ti->y | drss->subcoord_y, drss->width, drss->height, 0x14, ti->z);
drss++;
}
@ -843,7 +843,7 @@ void DrawRoadDepotSprite(int x, int y, int image)
for(dtss = (DrawRoadSeqStruct *)t; dtss->image != 0; dtss++) {
Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
image = dtss->image;
if (image & 0x8000)
image |= ormod;
@ -933,7 +933,7 @@ static void TileLoop_Road(uint tile)
{
Town *t;
int grp;
if (_opt.landscape == LT_HILLY) {
// Fix snow style if the road is above the snowline
if ((_map3_hi[tile] & 0x80) != ((GetTileZ(tile) > _opt.snow_line) ? 0x80 : 0x00)) {
@ -961,14 +961,14 @@ static void TileLoop_Road(uint tile)
}
grp = GetTownRadiusGroup(t, tile);
// Show an animation to indicate road work
if (t->road_build_months != 0 &&
if (t->road_build_months != 0 &&
!(GetTileDist(t->xy, tile) >= 8 && grp==0) &&
(_map5[tile]==5 || _map5[tile]==10)) {
if (GetTileSlope(tile, NULL) == 0 && EnsureNoVehicle(tile) && CHANCE16(1,20)) {
_map2[tile] = ((_map2[tile]&7) <= 1) ? 6 : 7;
SndPlayTileFx(0x1F,tile);
CreateEffectVehicleAbove(
GET_TILE_X(tile) * 16 + 7,
@ -987,7 +987,7 @@ static void TileLoop_Road(uint tile)
if (b == p[0])
return;
if (b == p[1]) {
b = p[0];
} else if (b == 0) {
@ -1000,7 +1000,7 @@ static void TileLoop_Road(uint tile)
}
} else {
// Handle road work
byte b = _map2[tile];
if (b < 0x80) {
_map2[tile] = b + 8;
@ -1040,10 +1040,10 @@ static uint32 GetTileTrackStatus_Road(uint tile, TransportType mode) {
/* Crossing */
uint32 r = 0x101;
if (b&8) r <<= 1;
if (b&4) {
r *= 0x10001;
}
}
return r;
} else if ((b&0xF0) == 0x20) {
/* Depot */