120void __attribute__((no_caller_saved_registers, thiscall))
130 snprintf(sfsf_info,
sizeof(sfsf_info),
131 "Spell Framework %s\n%d Mod(s) Loaded with %d Error(s)",
137 6, 10, 729, strlen(sfsf_info) * 4, 100);
139 char button_default[32] =
"ui_mainmenu_button_default.msh";
140 char button_pressed[32] =
"ui_mainmenu_button_pressed.msh";
141 char button_disabled[32] =
"ui_mainmenu_button_disabled.msh";
142 char button_highlight[32] =
"";
143 char button_label[32] =
"SHOW MOD LIST";
150 const int BUTTON_INDEX = 15;
151 const int BUTTON_X = 822;
152 const int BUTTON_Y = 705;
153 const int BUTTON_WIDTH = 192;
154 const int BUTTON_HEIGHT = 36;
155 const int BUTTON_FONT_INDEX = 7;
173 char campaign_label[32] =
"CUSTOM CAMPAIGNS";
189 s_menu_func(_CAppMenu);
204 if (spell_id == aura_spell_id)
224 uint32_t _figure_id = figure_id;
225 if ((actionID == 10000) || (actionID == 10001) || (actionID == 10002))
229 uint32_t *puvar5 =
fun_0086dd60(&_figure_id, 1, _figure_id & 0xffff);
239 if (ac113.
first != 0)
245 if ((actionID != 0) && (actionID < 10000))
262 uint32_t some_flag = 0;
269 &data, some_flag, 0);
293 uint16_t figure_id = ((*
fun_00a28d60(param1, &unused, 0)) >> 8) & 0xffff;
305 uint32_t general_address = (
ASI::AddrOf(0x806a86));
307 *(uint32_t *)(general_address +
320 if (action_id > 9999)
372 uint32_t *unknown_field = (uint32_t *)
vfun41(_this);
SpellFunctions * spellAPI
FigureFunctions * figureAPI
ToolboxFunctions * toolboxAPI
uint32_t g_campaign_count
void __thiscall show_custom_campaign_screen(CMnuSmpButton *_this)
Builds the campaign screen.
void campaign_hook_on_main_menu(CAppMenu *app_menu)
void log_info(const char *format,...)
int AddrOf(int offset)
returns "real" virtual address of given memory offset
void(__thiscall * CMnuScreen_attach_control_ptr)(void *_CMnuScreen_ptr, CMnuBase *base, char flag)
void(__thiscall * autoclass113_fun_00a27530_ptr)(void *_this_autoclass113)
void(__thiscall * fun_00910de0_ptr)(void *_this, void *param1, uint32_t param2)
void(__thiscall * fun_009a4020_ptr)(void *_this, uint32_t param1)
void(__thiscall * fun_009a1fd0_ptr)(void *SF_CUiGame, uint32_t param1)
uint32_t(__thiscall * fun_0069f8d0_ptr)(void *_this, uint32_t p1)
void(__fastcall * original_menu_func_ptr)(uint32_t param1)
void(__thiscall * fun_00a49b10_ptr)(CGdControllerClient *_this, uint8_t param1)
uint32_t(__thiscall * fun_0069fb90_ptr)(void *_this, uint16_t figure_id, uint8_t po2, uint16_t unkn_p3, SF_CGdTargetData *data, uint32_t p5, uint32_t p6)
SF_String *(__thiscall * construct_default_sf_string_ptr)(SF_String *_this)
void *(__thiscall * vfun41_ptr)(void *CMnuContainer)
void(__thiscall * vfun164_ptr)(void *CMnuContainer)
void(__thiscall * fun_009cd1f0_ptr)(void *SF_CUiBottom, uint8_t param1)
void(__thiscall * autoclass113_fun_00a278c0_ptr)(void *_this_autoclass113, uint32_t p1)
void(__thiscall * vfun163_ptr)(void *CMnuContainer, uint8_t param1)
void(__thiscall * menu_label_ptr)(CMnuLabel *_this)
void(__thiscall * fun_0099f610_ptr)(void *_this, uint16_t param1, uint16_t param2, uint8_t param3, uint16_t param4)
uint32_t(__thiscall * fun_006a0140_ptr)(void *_this, uint16_t p1, SF_CGdTargetData *p2_ptr, uint8_t p3, uint8_t p4)
void(__thiscall * message_box_ptr)(uint32_t CAppMenu, uint16_t description_id, SF_String *string_ptr, uint16_t hasOffset)
bool(__thiscall * getSpellLineIsTargetSelf_ptr)(void *_this, uint16_t spell_line_id)
uint32_t *(__thiscall * fun_00a28d60_ptr)(void *_this, void *param1, uint32_t param2)
uint32_t *(__thiscall * fun_0086dd60_ptr)(void *_this, uint8_t p1, uint32_t p2)
uint16_t(__cdecl * fun_00a2a1d0_ptr)(void *some_ptr, void *some_ptr_2)
void(__thiscall * initialize_menu_container_ptr)(CMnuContainer *_this)
void(__thiscall * set_label_flags_ptr)(CMnuLabel *_this, uint32_t flags)
uint32_t(__thiscall * fun_006f8c06_ptr)(SF_CGdFigureToolbox *_this, uint16_t figure_id, uint16_t spell_id, uint32_t target_id, uint8_t param4, uint32_t param5, uint32_t param6, uint32_t param7, uint32_t param8)
CUiOption *(__thiscall * create_option_ptr)(CUiOption *_this)
void *(__thiscall * fun_009de190_ptr)(void *_this, void *param_1)
uint32_t(__thiscall * cuiVideoSequence_constructor_ptr)(SF_CUiVideo *_this, SF_String *p1)
void *(__thiscall * fun_009a0750_ptr)(void *_this)
void(__thiscall * fun_009a2790_ptr)(void *_this, void *_p1, uint32_t p2)
void reset_mod_list_screen()
Drops every cached mod list pointer, this will ensure we don't crash after a map load.
void __thiscall show_mod_list(CMnuSmpButton *button)
SF_CGdFigureToolbox * CGdFigureToolBox
uint32_t unknown_action_type
CGdControllerClient * CGdControllerClient
CUiMain_data CUiMain_data
uint16_t actionSubtype_id
uint8_t unknown_config_param