Spellforce-Spell-framework
Loading...
Searching...
No Matches
sf_ai_avoidance_registry.cpp
Go to the documentation of this file.
2
3static std::map<uint16_t, ai_avoidance_handler_ptr> s_ai_avoidance_handler_map;
4
5void registerAiAvoidanceHandler(uint16_t spell_line,
7{
8 auto check = s_ai_avoidance_handler_map.find(spell_line);
9 if (check != s_ai_avoidance_handler_map.end())
10 {
11 log_debug(DEBUG_HIGH, "%s (v%s) has replaced a avoidance target AI Handler [%d] (Was this on purpose?)",
12 g_current_mod->mod_id, g_current_mod->mod_version, spell_line);
13 }
14
15 s_ai_avoidance_handler_map[spell_line] = handler;
16}
17
19{
20 auto it = s_ai_avoidance_handler_map.find(spell_line);
21 if (it == s_ai_avoidance_handler_map.end())
22 {
23 // Element doesn't exist, insert the default value
24 /* char message[256];
25 sprintf(message, "Unknown spell ID : %d for avoidance ai handler, Assigning a default handler", spell_line);
26 log_warning(message);*/
27 it = s_ai_avoidance_handler_map.emplace(spell_line, &sf_ai_avoidance_default_handler).first;
28 }
29 return it->second;
30}
void log_debug(DebugLevel level, const char *format,...)
uint32_t __thiscall sf_ai_avoidance_default_handler(CGdAIBattleData *_this, uint16_t figure_index, uint16_t spell_index)
void registerAiAvoidanceHandler(uint16_t spell_line, ai_avoidance_handler_ptr handler)
ai_avoidance_handler_ptr get_ai_avoidance_handler(uint16_t spell_line)
SFMod * g_current_mod
uint32_t(__thiscall * ai_avoidance_handler_ptr)(CGdAIBattleData *_this, uint16_t figure_index, uint16_t spell_line)