#pragma once #include "RetroTypes.hpp" #include namespace urde { enum class EStateMsg { Activate = 0, Update = 1, Deactivate = 2 }; class CStateManager; class CAi; typedef void (CAi::*CAiStateFunc)(CStateManager&, EStateMsg, float); typedef bool (CAi::*CAiTriggerFunc)(CStateManager&, float); class CAiFuncMap { static const std::vector gkStateNames; std::unordered_map x0_stateFuncs; std::unordered_map x10_triggerFuncs; public: CAiFuncMap(); CAiStateFunc GetStateFunc(const char*); CAiTriggerFunc GetTriggerFunc(const char*); }; } // namespace urde