disaster_cmd.c
changeset 3315 1f65f8260092
parent 3314 b8b234d4584f
child 3338 2c60ed0dcce3
equal deleted inserted replaced
3314:b8b234d4584f 3315:1f65f8260092
     1 /* $Id$ */
     1 /* $Id$ */
     2 
     2 
     3 #include "stdafx.h"
     3 #include "stdafx.h"
     4 #include "openttd.h"
     4 #include "openttd.h"
     5 #include "industry_map.h"
     5 #include "industry_map.h"
       
     6 #include "station_map.h"
     6 #include "table/strings.h"
     7 #include "table/strings.h"
     7 #include "functions.h"
     8 #include "functions.h"
     8 #include "map.h"
     9 #include "map.h"
     9 #include "tile.h"
    10 #include "tile.h"
    10 #include "vehicle.h"
    11 #include "vehicle.h"
   181 					IS_BYTE_INSIDE(_m[tile].m5, 8, 0x43) &&
   182 					IS_BYTE_INSIDE(_m[tile].m5, 8, 0x43) &&
   182 					IS_HUMAN_PLAYER(GetTileOwner(tile))) {
   183 					IS_HUMAN_PLAYER(GetTileOwner(tile))) {
   183 				v->current_order.station = 1;
   184 				v->current_order.station = 1;
   184 				v->age = 0;
   185 				v->age = 0;
   185 
   186 
   186 				SetDParam(0, _m[tile].m2);
   187 				SetDParam(0, GetStationIndex(tile));
   187 				AddNewsItem(STR_B000_ZEPPELIN_DISASTER_AT,
   188 				AddNewsItem(STR_B000_ZEPPELIN_DISASTER_AT,
   188 					NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ACCIDENT, 0),
   189 					NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ACCIDENT, 0),
   189 					v->index,
   190 					v->index,
   190 					0);
   191 					0);
   191 			}
   192 			}
   203 
   204 
   204 		if (IsValidTile(tile) &&
   205 		if (IsValidTile(tile) &&
   205 				IsTileType(tile, MP_STATION) &&
   206 				IsTileType(tile, MP_STATION) &&
   206 				IS_BYTE_INSIDE(_m[tile].m5, 8, 0x43) &&
   207 				IS_BYTE_INSIDE(_m[tile].m5, 8, 0x43) &&
   207 				IS_HUMAN_PLAYER(GetTileOwner(tile))) {
   208 				IS_HUMAN_PLAYER(GetTileOwner(tile))) {
   208 			st = GetStation(_m[tile].m2);
   209 			st = GetStationByTile(tile);
   209 			CLRBITS(st->airport_flags, RUNWAY_IN_block);
   210 			CLRBITS(st->airport_flags, RUNWAY_IN_block);
   210 		}
   211 		}
   211 
   212 
   212 		SetDisasterVehiclePos(v, v->x_pos, v->y_pos, v->z_pos);
   213 		SetDisasterVehiclePos(v, v->x_pos, v->y_pos, v->z_pos);
   213 		DeleteDisasterVeh(v);
   214 		DeleteDisasterVeh(v);
   245 	tile = v->tile;/**/
   246 	tile = v->tile;/**/
   246 	if (IsValidTile(tile) &&
   247 	if (IsValidTile(tile) &&
   247 			IsTileType(tile, MP_STATION) &&
   248 			IsTileType(tile, MP_STATION) &&
   248 			IS_BYTE_INSIDE(_m[tile].m5, 8, 0x43) &&
   249 			IS_BYTE_INSIDE(_m[tile].m5, 8, 0x43) &&
   249 			IS_HUMAN_PLAYER(GetTileOwner(tile))) {
   250 			IS_HUMAN_PLAYER(GetTileOwner(tile))) {
   250 		st = GetStation(_m[tile].m2);
   251 		st = GetStationByTile(tile);
   251 		SETBITS(st->airport_flags, RUNWAY_IN_block);
   252 		SETBITS(st->airport_flags, RUNWAY_IN_block);
   252 	}
   253 	}
   253 }
   254 }
   254 
   255 
   255 // UFO starts in the middle, and flies around a bit until it locates
   256 // UFO starts in the middle, and flies around a bit until it locates