Spellforce-Spell-framework
Loading...
Searching...
No Matches
sf_ai_single_target_registry.cpp
Go to the documentation of this file.
2
3static std::map<uint16_t, ai_single_handler_ptr> s_ai_single_target_handler_map;
4
5void registerAiSingleTargetHandler(uint16_t spell_line,
7{
8 auto check = s_ai_single_target_handler_map.find(spell_line);
9 if (check != s_ai_single_target_handler_map.end())
10 {
11 char message[256];
12 sprintf(message,
13 "%s (v%s) has replaced a single target AI Handler [%d] (Was this on purpose?)",
15 log_warning(message);
16 }
17
18 s_ai_single_target_handler_map[spell_line] = handler;
19}
20
22{
23 auto it = s_ai_single_target_handler_map.find(spell_line);
24 if (it == s_ai_single_target_handler_map.end())
25 {
26 // Element doesn't exist, insert the default value
27 char message[256];
28 sprintf(message,
29 "%s Unknown spell line [%d], for ai single target handler, Assigning a default handler",
30 g_current_mod->mod_id, spell_line);
31 log_warning(message);
32 it = s_ai_single_target_handler_map.emplace(spell_line,
34 .first;
35 }
36 return it->second;
37}
void log_warning(const char *message)
Definition sf_wrappers.c:81
ai_single_handler_ptr get_single_ai_handler(uint16_t spell_line)
void registerAiSingleTargetHandler(uint16_t spell_line, ai_single_handler_ptr handler)
uint32_t __thiscall default_support_ai_handler(SF_CGdBattleDevelopment *_this, uint16_t target_index, uint16_t spell_line, SF_CGdResourceSpell *spell_data)
SFMod * g_current_mod
uint32_t(__thiscall * ai_single_handler_ptr)(SF_CGdBattleDevelopment *_this, uint16_t target_index, uint16_t spell_line, SF_CGdResourceSpell *spell_data)
char mod_id[64]
char mod_version[24]