Goober5000andClaude Fable 5.1 2052dcaeb0 reset stale AI order state and track previous_mode through dynamic chases
Several ai_info fields remember which order set them up (enemy_wing,
guard_objnum/signature/wingnum) or which mode a dynamic goal interrupted
(previous_mode, resume_goal_time), but nothing cleared them when a new
order took over.  A ship that once guarded a wing would be yanked back
into AIM_GUARD whenever a wingmate died; a stale previous_mode of
AIM_GUARD could make a former guard abandon a counterattack; a stale
enemy_wing biased every find_enemy() toward a long-ago target; and a
resume_goal_time left over from a dynamic chase suppressed target
acquisition for up to 20 seconds into the next order.

Add ai_reset_order_state(), called when ai_process_mission_orders()
takes up a goal and when ai_do_default_behavior() runs.  Each order's
own setup repopulates the fields it needs.  enemy_wing is reset under
either $fix stale ai order state or $fix ai target recovery, since it
affects target selection; the rest only under the new flag.

maybe_set_dynamic_chase() wrote aip->mode into previous_submode, a
retail typo that left previous_mode untracked for dynamic chases.  Under
the flag, save both fields properly, but not when a dynamic goal is
already in progress, so a nested interruption does not clobber the mode
to return to.  Apply the same guard to the strafe/chase transitions in
aibig.cpp.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-12 20:09:29 -04:00
2019-02-26 19:53:11 +01:00
2026-09-19 15:54:22 +02:00
2025-06-11 22:21:51 +09:00
2019-11-15 23:33:35 -05:00
2018-04-21 23:01:19 +02:00
2019-12-01 09:58:53 -02:00
2019-12-01 09:58:53 -02:00
2020-10-29 21:24:42 -06:00
2016-07-22 12:07:19 +02:00
2003-03-02 04:53:46 +00:00
2023-08-09 15:08:36 -04:00
2020-10-29 21:24:42 -06:00

FreeSpace2 Source Code Project

Coverity

Building

Before you do anything, make sure you have updated your git submodules, either by running git submodule update --init --recursive or by cloning the repository with the --recursive flag.

The main instructions for building can be found at our github wiki, on the Building page.

S
Description
Origin Repository for SCP FreeSpace 2 Open
Readme
305 MiB
0 Stars 1 Watchers 0 Forks
2026-11-07 08:08:28 -10:00
Languages
C++ 75.7%
C 22%
CMake 1%
HTML 0.5%
Objective-C++ 0.3%
Other 0.2%