disaster_cmd.c
changeset 4527 b18634a31a4a
parent 4389 e4555522d257
child 4559 c853d2440065
--- a/disaster_cmd.c	Sat Sep 02 22:47:45 2006 +0000
+++ b/disaster_cmd.c	Sun Sep 03 08:25:27 2006 +0000
@@ -101,7 +101,7 @@
 	v->u.disaster.image_override = 0;
 	v->current_order.type = OT_NOTHING;
 	v->current_order.flags = 0;
-	v->current_order.dest.station = 0;
+	v->current_order.dest = 0;
 
 	DisasterVehicleUpdateImage(v);
 	VehiclePositionChanged(v);
@@ -165,7 +165,7 @@
 
 	++v->tick_counter;
 
-	if (v->current_order.dest.disaster < 2) {
+	if (v->current_order.dest < 2) {
 		if (v->tick_counter&1)
 			return;
 
@@ -173,23 +173,23 @@
 
 		SetDisasterVehiclePos(v, gp.x, gp.y, v->z_pos);
 
-		if (v->current_order.dest.disaster == 1) {
+		if (v->current_order.dest == 1) {
 			if (++v->age == 38) {
-				v->current_order.dest.disaster = 2;
+				v->current_order.dest = 2;
 				v->age = 0;
 			}
 
 			if ((v->tick_counter&7)==0) {
 				CreateEffectVehicleRel(v, 0, -17, 2, EV_SMOKE);
 			}
-		} else if (v->current_order.dest.disaster == 0) {
+		} else if (v->current_order.dest == 0) {
 			tile = v->tile; /**/
 
 			if (IsValidTile(tile) &&
 					IsTileType(tile, MP_STATION) &&
 					IsAirport(tile) &&
 					IS_HUMAN_PLAYER(GetTileOwner(tile))) {
-				v->current_order.dest.disaster = 1;
+				v->current_order.dest = 1;
 				v->age = 0;
 
 				SetDParam(0, GetStationIndex(tile));
@@ -204,7 +204,7 @@
 		return;
 	}
 
-	if (v->current_order.dest.disaster > 2) {
+	if (v->current_order.dest > 2) {
 		if (++v->age <= 13320)
 			return;
 
@@ -247,7 +247,7 @@
 				EV_EXPLOSION_SMALL);
 		}
 	} else if (v->age == 350) {
-		v->current_order.dest.disaster = 3;
+		v->current_order.dest = 3;
 		v->age = 0;
 	}
 
@@ -272,7 +272,7 @@
 
 	v->u.disaster.image_override = (++v->tick_counter & 8) ? SPR_UFO_SMALL_SCOUT_DARKER : SPR_UFO_SMALL_SCOUT;
 
-	if (v->current_order.dest.disaster == 0) {
+	if (v->current_order.dest == 0) {
 // fly around randomly
 		int x = TileX(v->dest_tile) * TILE_SIZE;
 		int y = TileY(v->dest_tile) * TILE_SIZE;
@@ -286,7 +286,7 @@
 			v->dest_tile = RandomTile();
 			return;
 		}
-		v->current_order.dest.disaster = 1;
+		v->current_order.dest = 1;
 
 		FOR_ALL_VEHICLES(u) {
 			if (u->type == VEH_Road && IS_HUMAN_PLAYER(u->owner)) {
@@ -360,7 +360,7 @@
 
 	v->tick_counter++;
 	v->u.disaster.image_override =
-		(v->current_order.dest.disaster == 1 && v->tick_counter & 4) ? SPR_F_15_FIRING : 0;
+		(v->current_order.dest == 1 && v->tick_counter & 4) ? SPR_F_15_FIRING : 0;
 
 	GetNewVehiclePos(v, &gp);
 	SetDisasterVehiclePos(v, gp.x, gp.y, v->z_pos);
@@ -370,7 +370,7 @@
 		return;
 	}
 
-	if (v->current_order.dest.disaster == 2) {
+	if (v->current_order.dest == 2) {
 		if (!(v->tick_counter&3)) {
 			Industry *i = GetIndustry(v->dest_tile);
 			int x = TileX(i->xy) * TILE_SIZE;
@@ -384,13 +384,13 @@
 				EV_EXPLOSION_SMALL);
 
 			if (++v->age >= 55)
-				v->current_order.dest.disaster = 3;
+				v->current_order.dest = 3;
 		}
-	} else if (v->current_order.dest.disaster == 1) {
+	} else if (v->current_order.dest == 1) {
 		if (++v->age == 112) {
 			Industry *i;
 
-			v->current_order.dest.disaster = 2;
+			v->current_order.dest = 2;
 			v->age = 0;
 
 			i = GetIndustry(v->dest_tile);
@@ -400,7 +400,7 @@
 			AddNewsItem(STR_B002_OIL_REFINERY_EXPLOSION, NEWS_FLAGS(NM_THIN,NF_VIEWPORT|NF_TILE,NT_ACCIDENT,0), i->xy, 0);
 			SndPlayTileFx(SND_12_EXPLOSION, i->xy);
 		}
-	} else if (v->current_order.dest.disaster == 0) {
+	} else if (v->current_order.dest == 0) {
 		int x,y;
 		TileIndex tile;
 		uint ind;
@@ -419,7 +419,7 @@
 		v->dest_tile = ind;
 
 		if (GetIndustry(ind)->type == IT_OIL_REFINERY) {
-			v->current_order.dest.disaster = 1;
+			v->current_order.dest = 1;
 			v->age = 0;
 		}
 	}
@@ -432,7 +432,7 @@
 
 	v->tick_counter++;
 	v->u.disaster.image_override =
-		(v->current_order.dest.disaster == 1 && v->tick_counter & 4) ? SPR_AH_64A_FIRING : 0;
+		(v->current_order.dest == 1 && v->tick_counter & 4) ? SPR_AH_64A_FIRING : 0;
 
 	GetNewVehiclePos(v, &gp);
 	SetDisasterVehiclePos(v, gp.x, gp.y, v->z_pos);
@@ -442,7 +442,7 @@
 		return;
 	}
 
-	if (v->current_order.dest.disaster == 2) {
+	if (v->current_order.dest == 2) {
 		if (!(v->tick_counter&3)) {
 			Industry *i = GetIndustry(v->dest_tile);
 			int x = TileX(i->xy) * TILE_SIZE;
@@ -456,13 +456,13 @@
 				EV_EXPLOSION_SMALL);
 
 			if (++v->age >= 55)
-				v->current_order.dest.disaster = 3;
+				v->current_order.dest = 3;
 		}
-	} else if (v->current_order.dest.disaster == 1) {
+	} else if (v->current_order.dest == 1) {
 		if (++v->age == 112) {
 			Industry *i;
 
-			v->current_order.dest.disaster = 2;
+			v->current_order.dest = 2;
 			v->age = 0;
 
 			i = GetIndustry(v->dest_tile);
@@ -472,7 +472,7 @@
 			AddNewsItem(STR_B003_FACTORY_DESTROYED_IN_SUSPICIOUS, NEWS_FLAGS(NM_THIN,NF_VIEWPORT|NF_TILE,NT_ACCIDENT,0), i->xy, 0);
 			SndPlayTileFx(SND_12_EXPLOSION, i->xy);
 		}
-	} else if (v->current_order.dest.disaster == 0) {
+	} else if (v->current_order.dest == 0) {
 		int x,y;
 		TileIndex tile;
 		uint ind;
@@ -491,7 +491,7 @@
 		v->dest_tile = ind;
 
 		if (GetIndustry(ind)->type == IT_FACTORY) {
-			v->current_order.dest.disaster = 1;
+			v->current_order.dest = 1;
 			v->age = 0;
 		}
 	}
@@ -523,7 +523,7 @@
 
 	v->tick_counter++;
 
-	if (v->current_order.dest.disaster == 1) {
+	if (v->current_order.dest == 1) {
 		int x = TileX(v->dest_tile) * TILE_SIZE + TILE_SIZE / 2;
 		int y = TileY(v->dest_tile) * TILE_SIZE + TILE_SIZE / 2;
 		if (abs(v->x_pos - x) + abs(v->y_pos - y) >= 8) {
@@ -540,7 +540,7 @@
 			return;
 		}
 
-		v->current_order.dest.disaster = 2;
+		v->current_order.dest = 2;
 
 		FOR_ALL_VEHICLES(u) {
 			if (u->type == VEH_Train || u->type == VEH_Road) {
@@ -574,7 +574,7 @@
 		u->next = w;
 		InitializeDisasterVehicle(w, -6 * TILE_SIZE, v->y_pos, 0, DIR_SW, 12);
 		w->vehstatus |= VS_SHADOW;
-	} else if (v->current_order.dest.disaster < 1) {
+	} else if (v->current_order.dest < 1) {
 
 		int x = TileX(v->dest_tile) * TILE_SIZE;
 		int y = TileY(v->dest_tile) * TILE_SIZE;
@@ -589,7 +589,7 @@
 			v->dest_tile = RandomTile();
 			return;
 		}
-		v->current_order.dest.disaster = 1;
+		v->current_order.dest = 1;
 
 		tile_org = tile = RandomTile();
 		do {
@@ -624,11 +624,11 @@
 		return;
 	}
 
-	if (v->current_order.dest.disaster == 0) {
+	if (v->current_order.dest == 0) {
 		u = GetVehicle(v->u.disaster.unk2);
 		if (abs(v->x_pos - u->x_pos) > TILE_SIZE)
 			return;
-		v->current_order.dest.disaster = 1;
+		v->current_order.dest = 1;
 
 		CreateEffectVehicleRel(u, 0, 7, 8, EV_EXPLOSION_LARGE);
 		SndPlayVehicleFx(SND_12_EXPLOSION, u);