@@ -39,6 +39,9 @@ enum class eDecisionMakerType : int32 {
3939};
4040
4141class CDecisionMakerTypes {
42+ private:
43+ using EventIndicesArray = std::array<int32, +eEventType::EVENT_TOTAL_NUM_EVENTS>;
44+
4245public:
4346 static constexpr auto NUM_TYPES = 20u ;
4447
@@ -49,22 +52,23 @@ class CDecisionMakerTypes {
4952
5053 static CDecisionMakerTypes* GetInstance ();
5154
52- int32 AddDecisionMaker (CDecisionMaker* decisionMaker, eDecisionTypes decisionMakerType, bool bDecisionMakerForMission);
53- void MakeDecision (CPed* ped, eEventType eventType, int32 eventSourceType, bool bIsPedInVehicle, eTaskType taskTypeToAvoid1, eTaskType taskTypeToAvoid2, eTaskType taskTypeToAvoid3, eTaskType taskTypeToSeek, bool bUseInGroupDecisionMaker, int16& taskType, int16& facialTaskType);
54- void RemoveDecisionMaker (eDecisionTypes dm);
55+ int32 AddDecisionMaker (CDecisionMaker* decisionMaker, eDecisionTypes decisionMakerType, bool bDecisionMakerForMission);
56+ void MakeDecision (CPed* ped, eEventType eventType, int32 eventSourceType, bool bIsPedInVehicle, eTaskType taskTypeToAvoid1, eTaskType taskTypeToAvoid2, eTaskType taskTypeToAvoid3, eTaskType taskTypeToSeek, bool bUseInGroupDecisionMaker, int16& taskType, int16& facialTaskType);
57+ void RemoveDecisionMaker (eDecisionTypes dm);
5558 eTaskType MakeDecision (CPedGroup* pedGroup, eEventType eventType, int32 eventSourceType, bool bIsPedInVehicle, eTaskType taskId1, eTaskType taskId2, eTaskType taskId3, eTaskType taskId4);
56- void AddEventResponse (int32 decisionMakerIndex, eEventType eventType, eTaskType taskId, float * responseChances, int32* flags);
57- void FlushDecisionMakerEventResponse (int32 decisionMakerIndex, eEventType eventId);
58- void LoadEventIndices ();
59- int32 CopyDecisionMaker (int32 index, eDecisionTypes type, bool isDecisionMakerForMission);
59+ void AddEventResponse (int32 decisionMakerIndex, eEventType eventType, eTaskType taskId, float * responseChances, int32* flags);
60+ void FlushDecisionMakerEventResponse (int32 decisionMakerIndex, eEventType eventId);
61+ void LoadEventIndices (EventIndicesArray& out, const char * filepath);
62+ void LoadEventIndices ();
63+ int32 CopyDecisionMaker (int32 index, eDecisionTypes type, bool isDecisionMakerForMission);
6064
6165public:
62- int32 m_NoOfDecisionMakers{};
63- CDecisionMaker m_DecisionMakers[+eDecisionMakerType::COUNT_TOTAL]{};
64- int32 m_EventIndices[+eEventType::EVENT_TOTAL_NUM_EVENTS] {};
65- CDecisionMaker m_DefaultRandomPedDecisionMaker{};
66- CDecisionMaker m_DefaultMissionPedDecisionMaker{};
67- CDecisionMaker m_DefaultPlayerPedDecisionMaker{};
68- CDecisionMaker m_DefaultRandomPedGroupDecisionMaker{};
69- CDecisionMaker m_DefaultMissionPedGroupDecisionMaker{};
66+ int32 m_NoOfDecisionMakers{};
67+ CDecisionMaker m_DecisionMakers[+eDecisionMakerType::COUNT_TOTAL]{};
68+ EventIndicesArray m_EventIndices{};
69+ CDecisionMaker m_DefaultRandomPedDecisionMaker{};
70+ CDecisionMaker m_DefaultMissionPedDecisionMaker{};
71+ CDecisionMaker m_DefaultPlayerPedDecisionMaker{};
72+ CDecisionMaker m_DefaultRandomPedGroupDecisionMaker{};
73+ CDecisionMaker m_DefaultMissionPedGroupDecisionMaker{};
7074};
0 commit comments