Split DecideAction into several specialized DecideAction functions

* Removes the need to constantly check for fCivilian, ARMED_VEHICLE, ENEMY_ROBOT etc inside DecideAction
* Move AI decision checks into their own functions, such as DecideActionRadioRedAlert
* Add new entry to ActionType. AI_ACTION_INVALID signals that no valid action was found when a function returns, or no valid action is possible
* Do a weighted random selection for choosing target under DecideActionBlackSoldier
This commit is contained in:
Asdow
2026-01-19 22:50:27 +02:00
parent c3f4ee754a
commit cd054b549f
16 changed files with 12707 additions and 23 deletions
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "Plan.h"
namespace AI
{
namespace tactical
{
/**@class LegacyAIPlan
* @brief Component/Concrete Product. Wrapper/Re-Write of DecideAction()
*
* Wrapper around boxer related AI uplifted from original DecideAction() routines
*/
class LegacyAIBoxerPlan: public Plan
{
private:
public:
LegacyAIBoxerPlan(SOLDIERTYPE* npc);
virtual void execute(PlanInputData& environment);
virtual bool done() const {return false;}
};
}
}