Spellforce-Spell-framework
Toggle main menu visibility
Loading...
Searching...
No Matches
sf_building_done_registry.cpp
Go to the documentation of this file.
1
#include "
sf_building_done_registry.h
"
2
#include "
../../handlers/sf_building_done_handlers.h
"
3
#include <cstdint>
4
#include <iostream>
5
#include <map>
6
#include <list>
7
#include <utility>
8
9
static
std::map<uint8_t, building_done_handler_ptr> s_bulding_done_map;
10
11
void
registerBuildingDoneHandler
(uint8_t building_type,
12
building_done_handler_ptr
handler)
13
{
14
auto
check = s_bulding_done_map.find(building_type);
15
if
(check != s_bulding_done_map.end())
16
{
17
char
message[256];
18
sprintf(message,
"%s (v%s) has replaced a Building Done Handler [%d] (Was this on purpose?)"
,
19
g_current_mod
->mod_id,
g_current_mod
->mod_version, building_type);
20
log_warning
(message);
21
}
22
23
s_bulding_done_map[building_type] = handler;
24
}
25
26
building_done_handler_ptr
get_building_done_handler
(uint8_t building_type)
27
{
28
auto
it = s_bulding_done_map.find(building_type);
29
if
(it == s_bulding_done_map.end())
30
{
31
// Element doesn't exist, insert the default value
32
log_debug
(
DEBUG_HIGH
,
"Unknown buidling type [%d] for done handler, Assigning a default handler."
,
33
building_type);
34
it = s_bulding_done_map.emplace(building_type, &
default_done_handler
).first;
35
}
36
return
it->second;
37
}
log_warning
void log_warning(const char *format,...)
Logs a warning at DEBUG_INFO, i.e. always shown.
Definition
sf_wrappers.c:124
log_debug
void log_debug(DebugLevel level, const char *format,...)
Definition
sf_wrappers.c:182
default_done_handler
void __thiscall default_done_handler(SF_CGdBuildingToolbox *_this, uint16_t building_index)
Definition
sf_building_done_handlers.cpp:4
sf_building_done_handlers.h
get_building_done_handler
building_done_handler_ptr get_building_done_handler(uint8_t building_type)
Definition
sf_building_done_registry.cpp:26
registerBuildingDoneHandler
void registerBuildingDoneHandler(uint8_t building_type, building_done_handler_ptr handler)
Definition
sf_building_done_registry.cpp:11
sf_building_done_registry.h
DEBUG_HIGH
@ DEBUG_HIGH
Definition
sf_general_structures.h:40
g_current_mod
SFMod * g_current_mod
Definition
sf_registry.cpp:45
building_done_handler_ptr
void(__thiscall * building_done_handler_ptr)(SF_CGdBuildingToolbox *_this, uint16_t building_index)
Definition
sf_registration_structures.h:25
src
internal
registry
building_registry
sf_building_done_registry.cpp
Generated by
1.17.0