|
@@ -25,13 +25,13 @@
|
|
|
static void DisasterClearSquare(TileIndex tile)
|
|
|
{
|
|
|
if (!EnsureNoVehicle(tile)) return;
|
|
|
|
|
|
switch (GetTileType(tile)) {
|
|
|
case MP_RAILWAY:
|
|
|
if (IS_HUMAN_PLAYER(GetTileOwner(tile)) && !IsRailWaypoint(tile)) {
|
|
|
if (IsHumanPlayer(GetTileOwner(tile)) && !IsRailWaypoint(tile)) {
|
|
|
PlayerID p = _current_player;
|
|
|
_current_player = OWNER_WATER;
|
|
|
DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
|
|
|
_current_player = p;
|
|
|
}
|
|
|
break;
|
|
@@ -185,13 +185,13 @@ static void DisasterTick_Zeppeliner(Vehi
|
|
|
} else if (v->current_order.dest == 0) {
|
|
|
tile = v->tile; /**/
|
|
|
|
|
|
if (IsValidTile(tile) &&
|
|
|
IsTileType(tile, MP_STATION) &&
|
|
|
IsAirport(tile) &&
|
|
|
IS_HUMAN_PLAYER(GetTileOwner(tile))) {
|
|
|
IsHumanPlayer(GetTileOwner(tile))) {
|
|
|
v->current_order.dest = 1;
|
|
|
v->age = 0;
|
|
|
|
|
|
SetDParam(0, GetStationIndex(tile));
|
|
|
AddNewsItem(STR_B000_ZEPPELIN_DISASTER_AT,
|
|
|
NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ACCIDENT, 0),
|
|
@@ -210,13 +210,13 @@ static void DisasterTick_Zeppeliner(Vehi
|
|
|
|
|
|
tile = v->tile; /**/
|
|
|
|
|
|
if (IsValidTile(tile) &&
|
|
|
IsTileType(tile, MP_STATION) &&
|
|
|
IsAirport(tile) &&
|
|
|
IS_HUMAN_PLAYER(GetTileOwner(tile))) {
|
|
|
IsHumanPlayer(GetTileOwner(tile))) {
|
|
|
st = GetStationByTile(tile);
|
|
|
CLRBITS(st->airport_flags, RUNWAY_IN_block);
|
|
|
}
|
|
|
|
|
|
SetDisasterVehiclePos(v, v->x_pos, v->y_pos, v->z_pos);
|
|
|
DeleteDisasterVeh(v);
|
|
@@ -252,13 +252,13 @@ static void DisasterTick_Zeppeliner(Vehi
|
|
|
}
|
|
|
|
|
|
tile = v->tile;/**/
|
|
|
if (IsValidTile(tile) &&
|
|
|
IsTileType(tile, MP_STATION) &&
|
|
|
IsAirport(tile) &&
|
|
|
IS_HUMAN_PLAYER(GetTileOwner(tile))) {
|
|
|
IsHumanPlayer(GetTileOwner(tile))) {
|
|
|
st = GetStationByTile(tile);
|
|
|
SETBITS(st->airport_flags, RUNWAY_IN_block);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// UFO starts in the middle, and flies around a bit until it locates
|
|
@@ -286,13 +286,13 @@ static void DisasterTick_UFO(Vehicle *v)
|
|
|
v->dest_tile = RandomTile();
|
|
|
return;
|
|
|
}
|
|
|
v->current_order.dest = 1;
|
|
|
|
|
|
FOR_ALL_VEHICLES(u) {
|
|
|
if (u->type == VEH_Road && IS_HUMAN_PLAYER(u->owner)) {
|
|
|
if (u->type == VEH_Road && IsHumanPlayer(u->owner)) {
|
|
|
v->dest_tile = u->index;
|
|
|
v->age = 0;
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -592,13 +592,13 @@ static void DisasterTick_4(Vehicle *v)
|
|
|
v->current_order.dest = 1;
|
|
|
|
|
|
tile_org = tile = RandomTile();
|
|
|
do {
|
|
|
if (IsTileType(tile, MP_RAILWAY) &&
|
|
|
IsPlainRailTile(tile) &&
|
|
|
IS_HUMAN_PLAYER(GetTileOwner(tile))) {
|
|
|
IsHumanPlayer(GetTileOwner(tile))) {
|
|
|
break;
|
|
|
}
|
|
|
tile = TILE_MASK(tile+1);
|
|
|
} while (tile != tile_org);
|
|
|
v->dest_tile = tile;
|
|
|
v->age = 0;
|
|
@@ -723,13 +723,13 @@ static void Disaster0_Init(void)
|
|
|
/* Pick a random place, unless we find a small airport */
|
|
|
x = TileX(Random()) * TILE_SIZE + TILE_SIZE / 2;
|
|
|
|
|
|
FOR_ALL_STATIONS(st) {
|
|
|
if (st->airport_tile != 0 &&
|
|
|
st->airport_type <= 1 &&
|
|
|
IS_HUMAN_PLAYER(st->owner)) {
|
|
|
IsHumanPlayer(st->owner)) {
|
|
|
x = (TileX(st->xy) + 2) * TILE_SIZE;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
InitializeDisasterVehicle(v, x, 0, 135, DIR_SE, 0);
|