address issue 3175 by introducing special divide by zero handling

This commit is contained in:
zhexu14 2023-10-02 16:36:23 +11:00 committed by Dan Albert
parent b1b88c4335
commit f9916e47d8
2 changed files with 6 additions and 0 deletions

View File

@ -32,6 +32,7 @@ Saves from 8.x are not compatible with 9.0.0.
* **[Mission Generation]** Fix generation of OCA Runway missions to allow LGBs to be used. * **[Mission Generation]** Fix generation of OCA Runway missions to allow LGBs to be used.
* **[Mission Generation]** Fixed AI flights flying far too slowly toward NAV points. * **[Mission Generation]** Fixed AI flights flying far too slowly toward NAV points.
* **[Mission Generation]** Fixed Recovery Tanker mission type intermittently failing due to not being able to find the CVN. * **[Mission Generation]** Fixed Recovery Tanker mission type intermittently failing due to not being able to find the CVN.
* **[Mission Generation]** Fixed "division by zero" error on mission generation when a flight has an "In-Flight" start type and starts on top of a mission waypoint.
* **[Modding]** Unit variants can now actually override base unit type properties. * **[Modding]** Unit variants can now actually override base unit type properties.
* **[New Game Wizard]** Factions are reset to default after clicking "Back" to Theater Configuration screen. * **[New Game Wizard]** Factions are reset to default after clicking "Back" to Theater Configuration screen.
* **[Plugins]** Fixed Lua errors in Skynet plugin that would occur whenever one coalition had no IADS nodes. * **[Plugins]** Fixed Lua errors in Skynet plugin that would occur whenever one coalition had no IADS nodes.

View File

@ -29,6 +29,11 @@ class Navigating(InFlight):
events.update_flight_position(self.flight, self.estimate_position()) events.update_flight_position(self.flight, self.estimate_position())
def progress(self) -> float: def progress(self) -> float:
# if next waypoint is very close, assume we reach it immediately to avoid divide
# by zero error
if self.total_time_to_next_waypoint.total_seconds() < 1:
return 1.0
return ( return (
self.elapsed_time.total_seconds() self.elapsed_time.total_seconds()
/ self.total_time_to_next_waypoint.total_seconds() / self.total_time_to_next_waypoint.total_seconds()