4#if defined(__GNUC__) || defined(__clang__)
5#define LOG_PRINTF_FMT(fmt_idx, arg_idx) __attribute__((format(printf, fmt_idx, arg_idx)))
7#define LOG_PRINTF_FMT(fmt_idx, arg_idx)
19void log_message(
const char *filename,
const char *message, ...);
32extern bool __thiscall
hasSpellTag(uint16_t spell_id,
SpellTag tag) __attribute__((optimize(
"-O0")));
64 uint16_t source_index,
76 uint16_t spell_index));
80 uint16_t target, int8_t value);
85 uint16_t spell_index);
89 uint16_t target_index,
96 uint16_t target_index,
void log_error(const char *format,...)
bool __thiscall buildingIsForge(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall buildingIsMoonsilverMine(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall buildingIsShrine(SF_CGdBuilding *_this, uint16_t building_index)
void __thiscall addBonusMultToStatistic(SF_CGdFigure *figure, StatisticDataKey key, uint16_t target, int8_t value)
bool __thiscall buildingIsSawmill(SF_CGdBuilding *_this, uint16_t building_index)
uint32_t __thiscall getDistance(SF_Coord *pointA, SF_Coord *pointB)
bool __thiscall buildingIsHabitable(SF_CGdBuilding *_this, uint16_t building_index)
void log_message(const char *filename, const char *message,...)
bool __thiscall buildingIsGatherer(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall buildingIsHunter(SF_CGdBuilding *_this, uint16_t building_index)
void log_warning_level(DebugLevel level, const char *format,...)
Logs a warning that is only shown once the log level reaches level.
bool __thiscall buildingIsScavenger(SF_CGdBuilding *_this, uint16_t building_index)
void log_warning(const char *format,...)
Logs a warning at DEBUG_INFO, i.e. always shown.
bool __thiscall buildingIsFisher(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall buildingIsWoodcutter(SF_CGdBuilding *_this, uint16_t building_index)
uint16_t __thiscall getCurrentStat(SF_CGdFigure *_this, uint16_t target, StatisticDataKey key)
bool __thiscall XDataExists(SF_CGdEffect *_this, uint16_t effect_index, SpellDataKey data)
bool __thiscall buildingIsIronMine(SF_CGdBuilding *_this, uint16_t building_index)
void __thiscall setupFigureIterator(CGdFigureIterator *iterator, SF_CGdSpell *spell)
bool __thiscall buildingIsHQ(SF_CGdBuilding *_this, uint16_t building_index)
uint16_t __thiscall getPhysDamageReduction(SF_CGdFigureToolbox *_this, uint16_t source_index, uint16_t target_index, uint16_t action_id)
bool __thiscall buildingIsHabitableSingle(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall hasBuildingTag(uint8_t building_type, BuildingTag tag)
bool __thiscall isSiegeUnit(SF_CGdFigure *_this, uint16_t figure_index)
bool __thiscall buildingIsFoodstore(SF_CGdBuilding *_this, uint16_t building_index)
has_spell_effect_ptr has_spell_effect
bool __thiscall buildingIsStonecutter(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall buildingIsTemple(SF_CGdBuilding *_this, uint16_t building_index)
void log_debug(DebugLevel level, const char *format,...)
bool __thiscall hasSpellTag(uint16_t spell_id, SpellTag tag)
const char * debug_level_to_string(DebugLevel level)
bool __thiscall hasAuraActive(SF_CGdFigureToolbox *_this, uint16_t figure_id)
SF_String_ctor_ptr g_create_sf_string
void __thiscall spellClearFigureFlag(SF_CGdSpell *spell, uint16_t spell_index, SpellFlagKey key)
void __thiscall tryClearCheckSpellsBeforeJob(SF_CGdSpell *_this, uint16_t spell_index, uint16_t figure_index)
bool __thiscall buildingIsQuarry(SF_CGdBuilding *_this, uint16_t building_index)
uint16_t __thiscall getMaxStat(SF_CGdFigure *_this, uint16_t target, StatisticDataKey key)
void __thiscall disposeFigureIterator(CGdFigureIterator *iterator)
FUN_0069eaf0_ptr FUN_0069eaf0
bool __thiscall buildingIsTower(SF_CGdBuilding *_this, uint16_t building_index)
void initialize_wrapper_data_hooks()
SF_String_dtor_ptr g_destroy_sf_string
uint16_t __thiscall sf_get_spell_id(SF_CGdSpell *_this, uint16_t spell_index)
void log_info(const char *format,...)
bool __thiscall isActionMelee(SF_SGtFigureAction *_this)
bool __thiscall buildingIsMaceCarver(SF_CGdBuilding *_this, uint16_t building_index)
bool __thiscall buildingIsSmelter(SF_CGdBuilding *_this, uint16_t building_index)
uint32_t __thiscall getBuildingXData(SF_CGdBuildingToolbox *_this, uint16_t building_index, uint8_t key_type)
void(* fidfree_ptr)(uint32_t *memory_ptr)
uint32_t(__thiscall * FUN_0069eaf0_ptr)(void *ac69, void *ac69_2, void *ac69_3, void *ac69_4)
get_reduced_damage_ptr g_get_reduced_damage
#define LOG_PRINTF_FMT(fmt_idx, arg_idx)
void __thiscall spellEffectCallback(SF_CGdSpell *_this, uint16_t source_index, uint16_t spell_index, bool(*condition)(SF_CGdSpell *_this, uint16_t spell_index, uint16_t walked_index), void(*callback)(SF_CGdSpell *_this, uint16_t source_index, uint16_t walked_index, uint16_t spell_index))
bool(__thiscall * has_spell_effect_ptr)(SF_CGdFigureToolbox *_this, uint16_t param_1, uint16_t param_2)
SF_String *(__thiscall * SF_String_ctor_ptr)(SF_String *, const char *)
void(__thiscall * SF_String_dtor_ptr)(SF_String *)
DebugLevel global_debug_level
uint16_t(__thiscall * get_phys_damage_reduction_ptr)(void *AutoClass34, uint16_t source_index, uint16_t target_index, uint16_t unkn)