74 s_initialize_menu_container =
76 s_construct_default_sf_string =
135void __attribute__((no_caller_saved_registers,
141 sprintf(sfsf_info,
"Spell Framework %s\n%d Mod(s) Loaded with %d Error(s)",
146 uint32_t container_hack_ptr = *(uint32_t *)(_CAppMenu + 0x58);
151 strlen(sfsf_info) * 4, 100);
152 char sfsf_test_button_default[256];
153 char sfsf_test_button_pressed[256];
154 char sfsf_test_button_disabled[256];
155 char sfsf_test_button_highlight[256];
156 char sfsf_test_button_label[256];
158 sprintf(sfsf_test_button_default,
"ui_mainmenu_button_default.msh");
159 sprintf(sfsf_test_button_pressed,
"ui_mainmenu_button_pressed.msh");
160 sprintf(sfsf_test_button_highlight,
"");
161 sprintf(sfsf_test_button_disabled,
"ui_mainmenu_button_disabled.msh");
162 sprintf(sfsf_test_button_label,
"SHOW MOD LIST");
169 int button_index = 15;
171 sfsf_test_button_pressed, sfsf_test_button_highlight,
172 sfsf_test_button_disabled, sfsf_test_button_label, 7, 822,
173 705, 192, 36, button_index,
181 s_menu_func(_CAppMenu);
195 uint16_t spell_index =
200 if (spell_id == aura_spell_id)
219 log_info(
"Called SF_CLICK_VERTICAL_BUTTON");
222 uint32_t _figure_id = figure_id;
223 if ((actionID == 10000) || (actionID == 10001) || (actionID == 10002))
227 uint32_t *puvar5 =
fun_0086dd60(&_figure_id, 1, _figure_id & 0xffff);
238 if (ac113.
first != 0)
246 if ((actionID != 0) && (actionID < 10000))
251 subActionID, figure_id))
265 uint32_t some_flag = 0;
274 &data, some_flag, 0);
298 uint16_t figure_id = ((*
fun_00a28d60(param1, &unused, 0)) >> 8) & 0xffff;
310 uint32_t general_address = (
ASI::AddrOf(0x806a86));
312 *(uint32_t *)(general_address +
325 if (action_id > 9999)
381 uint32_t *unknown_field = (uint32_t *)
vfun41(_this);
SpellFunctions * spellAPI
FigureFunctions * figureAPI
ToolboxFunctions * toolboxAPI
CMnuLabel *__thiscall attach_new_label(CMnuLabel *label_ptr, CMnuContainer *parent, char *label_text, uint8_t font_index, uint16_t x_pos, uint16_t y_pos, uint16_t width, uint16_t height)
void __thiscall attach_new_button(CMnuContainer *parent, char *button_mesh_default, char *button_mesh_pressed, char *button_mesh_highlight, char *button_mesh_disabled, char *label_char, uint8_t font_index, uint16_t x_pos, uint16_t y_pos, uint16_t width, uint16_t height, int button_index, uint32_t callback_function_pointer)
void log_info(const char *message)
void __fastcall show_mod_list_callback(CMnuSmpButton *button, int32_t *cui_menu_ptr_maybe)
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)
void(__thiscall * menu_label_constructor_ptr)(CMnuLabel *_this)
uint32_t(__thiscall * fun_0069f8d0_ptr)(void *_this, uint32_t p1)
void(__thiscall * menu_label_set_string_ptr)(CMnuLabel *_this, SF_String *string)
void(__fastcall * original_menu_func_ptr)(uint32_t param1)
void(__thiscall * mnu_label_init_data_ptr)(void *_this, float xpos, float ypos, float width, float height, SF_String *string)
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_FontStruct *(__thiscall * get_smth_fonts_ptr)(void)
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)
SF_Font *(__thiscall * get_font_ptr)(SF_FontStruct *_this, uint32_t font_id)
void(__thiscall * menu_label_set_font_ptr)(void *_this, SF_Font *font)
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)
void *(__cdecl * new_operator_ptr)(uint32_t param_1)
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 * menu_label_set_data_ptr)(CMnuLabel *_this, uint32_t color_red, uint32_t color_green, uint32_t color_blue, uint8_t unknchar)
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 * container_add_control_ptr)(CMnuContainer *_this, CMnuBase *CMnubase, char c1, char c2, uint32_t p4)
void(__thiscall * fun_009a2790_ptr)(void *_this, void *_p1, uint32_t p2)
SF_CGdFigureToolbox * CGdFigureToolBox
uint32_t unknown_action_type
CGdControllerClient * CGdControllerClient
CUiMain_data CUiMain_data
uint16_t actionSubtype_id
uint8_t unknown_config_param
getResourceSpellData_ptr getResourceSpellData
hasSpellTag_ptr hasSpellTag
Checks if a spell has a specific tag.
getLeveledSpellID_ptr getLeveledSpellID
getSpellID_ptr getSpellID
Retrieves the Spell Effect ID for a given spell index. The spell effect ID can be used to obtain spel...