Spellforce-Spell-framework
Toggle main menu visibility
Loading...
Searching...
No Matches
sf_ai_avoidance_registry.cpp
Go to the documentation of this file.
1
#include "
sf_ai_avoidance_registry.h
"
2
3
static
std::map<uint16_t, ai_avoidance_handler_ptr> s_ai_avoidance_handler_map;
4
5
void
registerAiAvoidanceHandler
(uint16_t spell_line,
6
ai_avoidance_handler_ptr
handler)
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
18
ai_avoidance_handler_ptr
get_ai_avoidance_handler
(uint16_t spell_line)
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
}
log_debug
void log_debug(DebugLevel level, const char *format,...)
Definition
sf_wrappers.c:182
sf_ai_avoidance_default_handler
uint32_t __thiscall sf_ai_avoidance_default_handler(CGdAIBattleData *_this, uint16_t figure_index, uint16_t spell_index)
Definition
sf_ai_avoidance_handlers.cpp:34
registerAiAvoidanceHandler
void registerAiAvoidanceHandler(uint16_t spell_line, ai_avoidance_handler_ptr handler)
Definition
sf_ai_avoidance_registry.cpp:5
get_ai_avoidance_handler
ai_avoidance_handler_ptr get_ai_avoidance_handler(uint16_t spell_line)
Definition
sf_ai_avoidance_registry.cpp:18
sf_ai_avoidance_registry.h
DEBUG_HIGH
@ DEBUG_HIGH
Definition
sf_general_structures.h:40
g_current_mod
SFMod * g_current_mod
Definition
sf_registry.cpp:45
ai_avoidance_handler_ptr
uint32_t(__thiscall * ai_avoidance_handler_ptr)(CGdAIBattleData *_this, uint16_t figure_index, uint16_t spell_line)
Definition
sf_registration_structures.h:15
src
internal
registry
ai_data_registries
sf_ai_avoidance_registry.cpp
Generated by
1.17.0