Update to 14.0-RC1

This commit is contained in:
dP
2024-02-19 04:42:45 +05:30
parent 910fa762b9
commit 53ff9d1f9f
183 changed files with 9531 additions and 5695 deletions
+21 -14
View File
@@ -345,12 +345,18 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
}
n = RandomRange(n); // Choose one of them.
for (const RoadVehicle *u : RoadVehicle::Iterate()) {
for (RoadVehicle *u : RoadVehicle::Iterate()) {
/* Find (n+1)-th road vehicle. */
if (u->IsFrontEngine() && (n-- == 0)) {
if (u->crashed_ctr != 0 || u->disaster_vehicle != INVALID_VEHICLE) {
/* Targetted vehicle is crashed or already a target, destroy the UFO. */
delete v;
return false;
}
/* Target it. */
v->dest_tile = u->index;
v->age = 0;
u->disaster_vehicle = v->index;
break;
}
}
@@ -379,6 +385,7 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
v->age++;
if (u->crashed_ctr == 0) {
u->Crash();
u->disaster_vehicle = INVALID_VEHICLE;
AddTileNewsItem(STR_NEWS_DISASTER_SMALL_UFO, NT_ACCIDENT, u->tile);
@@ -970,20 +977,20 @@ void ReleaseDisastersTargetingIndustry(IndustryID i)
* Notify disasters that we are about to delete a vehicle. So make them head elsewhere.
* @param vehicle deleted vehicle
*/
void ReleaseDisastersTargetingVehicle(VehicleID vehicle)
void ReleaseDisasterVehicle(VehicleID vehicle)
{
for (DisasterVehicle *v : DisasterVehicle::Iterate()) {
/* primary disaster vehicles that have chosen target */
if (v->subtype == ST_SMALL_UFO) {
if (v->state != 0 && v->dest_tile == vehicle) {
/* Revert to target-searching */
v->state = 0;
v->dest_tile = RandomTile();
GetAircraftFlightLevelBounds(v, &v->z_pos, nullptr);
v->age = 0;
}
}
}
DisasterVehicle *v = DisasterVehicle::GetIfValid(vehicle);
if (v == nullptr) return;
/* primary disaster vehicles that have chosen target */
assert(v->subtype == ST_SMALL_UFO);
assert(v->state != 0);
/* Revert to target-searching */
v->state = 0;
v->dest_tile = RandomTile();
GetAircraftFlightLevelBounds(v, &v->z_pos, nullptr);
v->age = 0;
}
void DisasterVehicle::UpdateDeltaXY()