Spellforce-Spell-framework
Loading...
Searching...
No Matches
Custom Campaign Hook

Custom Campaign selection screen and launch via the vanilla pre-game flow. More...

Collaboration diagram for Custom Campaign Hook:

Classes

struct  SFSF_CampaignDef

Macros

#define CAMPAIGN_PANEL_WIDTH   443
#define CAMPAIGN_NAME_Y   32
#define CAMPAIGN_NAME_H   48
#define CAMPAIGN_AUTHOR_Y   88
#define CAMPAIGN_AUTHOR_H   28
#define CAMPAIGN_DESC_Y   140
#define CAMPAIGN_DESC_H   360
#define CAMPAIGN_PLAY_X   108
#define CAMPAIGN_PLAY_Y   540
#define CAMPAIGN_PLAY_W   227
#define CAMPAIGN_PLAY_H   36
#define CAMPAIGN_DESC_WRAP   40
#define CAMPAIGN_ROW_X   108
#define CAMPAIGN_ROW_Y_START   40
#define CAMPAIGN_ROW_PITCH   36
#define CAMPAIGN_ROW_W   227
#define CAMPAIGN_ROW_H   30
#define SFSF_MAX_CAMPAIGNS   16
#define SFSF_CAMPAIGN_TYPE_BASE   3
#define SFSF_AVATAR_TYPE_BASE   8
#define SFSF_AVATAR_TYPE_MAX   (SFSF_AVATAR_TYPE_BASE + SFSF_MAX_CAMPAIGNS - 1)

Typedefs

typedef LPCSTR *(__cdecl * GetDataStorageLocation_ptr) (char **param_1, uint32_t type)
typedef void(__thiscall * prepareTransition_ptr) (CAppMenu *_this, uint32_t param_1, uint32_t param_2)
typedef SF_GameInfo *(__thiscall * initDefaultInfo_ptr) (SF_GameInfo *_this)
typedef void(__thiscall * AC82_Zero_ptr) (AutoClass82 *_this)
typedef void(__thiscall * some_vector_fun_ptr) (void *_this, uint32_t *size)
typedef uint32_t(__thiscall * CMnuBaseFlagGetter_ptr) (CMnuBase *_this)
typedef void(__thiscall * CUtlCallBackInit_ptr) (void *_this, void *param1, void *param2, uint32_t param3)
typedef void(__thiscall * CUiGameZero_ptr) (void *_this)
typedef void(__thiscall * CUiGame_009a1fd0_ptr) (void *_this, uint32_t param1)
typedef SF_String *(__thiscall * AC95_get_figure_name_ptr) (void *AC95, SF_String *name_buffer, uint32_t figure_id)
typedef GdAvatarInternal *(__thiscall * avatarInternalCopy_ptr) (GdAvatarInternal *dest, GdAvatarInternal *src)
typedef void(__thiscall * avatarVectorsCopy_ptr) (void *dest_vectors, void *src_vectors)
typedef void(__thiscall * gameInfoSetAvatarType_ptr) (SF_GameInfo *_this, uint16_t avatar_type)
typedef void(__thiscall * gameInfoSetMapPathFull_ptr) (SF_GameInfo *_this, SF_String *map_path)
typedef void(__thiscall * appMenuEnterCampaignFlow_ptr) (CAppMenu *_this, uint32_t param_1)
typedef void(__fastcall * playCampaignIntro_ptr) (CAppMenu *_this)
typedef void(__thiscall * videoSequenceStop_ptr) (SF_CUiVideoSequence *_this)
typedef void(__thiscall * startGame_ptr) (CAppMenu *_this, SF_GameInfo *game_info, uint32_t param_2, uint32_t param_3, uint32_t param_4, uint32_t coord, SF_String *param_6)
typedef SF_String *(__thiscall * getSavePath_real_ptr) (SF_String *_this, int campaign_type)
typedef char **(__cdecl * getBasePathString_ptr) (void *out_string_obj)
typedef uint32_t(__cdecl * checkFileExists_ptr) (SF_String *name)
 The engine's file existence check, resolved by initialize_campaign_hooks().

Functions

void initialize_campaign_hooks ()
int32_t register_campaign (const SFSF_CampaignDef *def)
int isDirectoryExists (const char *path)
void checkDirs (CAppSession *_this)
SF_String *__thiscall getSavePath (CAppSession *_this, SF_String *output, uint32_t campaign_type)
uint8_t __thiscall quickLoad_helper (SF_CUiMain *_this)
uint32_t __thiscall getHdrStringID (uint32_t camp_type)
void __thiscall loadQuickSave (CAppMenu *_this, uint32_t unknown)
void __thiscall initFirstMap (SF_GameInfo *_this, uint32_t skip_tutorial, uint8_t skill, uint8_t subskill, uint32_t campaign_id, bool is_shadowblade)
 Proper map selection code for the future.
void campaign_hook_on_main_menu (CAppMenu *app_menu)
void stop_intro_video (CAppMenu *app_menu)
void campaign_launch_flow (int32_t campaign_index)
void __thiscall on_campaign_selected (CMnuSmpButton *_this)
 Left panel row callback.
void __thiscall on_campaign_play (CMnuSmpButton *_this)
 Play button callback - launches whatever the list has selected.
void close_campaign_screen_callback (CMnuSmpButton *button)
void __thiscall show_custom_campaign_screen (CMnuSmpButton *_this)
 Builds the campaign screen.
void initialize_preparenewgame_rewrite ()
uint8_t __thiscall pn_preload_get_skip_tutorial (CUiMenuPreLoad *_this)
SF_Stringbuild_load_path (CAppMenu *_this, void *preload, SF_String *out)
void __thiscall hooked_prepare_new_game (CAppMenu *_this, CUiMenuPreLoad *preload)

Variables

startGame_ptr s_start_game
playCampaignIntro_ptr s_play_campaign_intro
getBasePathString_ptr s_get_base_path_string
gameInfoSetAvatarType_ptr s_gameinfo_set_avatar_type
CMnuBaseFlagGetter_ptr CMnuBaseIsVisible
prepareTransition_ptr prepareTransition
initDefaultInfo_ptr initDefaultInfo
AC82_Zero_ptr AC82_Zero
CUiGameZero_ptr CUiGameZero
CUiGame_009a1fd0_ptr CUiGame_009a1fd0
AC95_get_figure_name_ptr AC95_get_figure_name
some_vector_fun_ptr some_vector_init
some_vector_fun_ptr some_vector_dispose
CUtlCallBackInit_ptr CUtlCallBackInit
checkFileExists_ptr checkFileExists
SFSF_CampaignDef g_campaigns [16]
uint32_t g_campaign_count = 0
int32_t g_active_custom_campaign = -1
CAppMenug_campaign_app_menu = NULL
checkFileExists_ptr checkFileExists
SFSF_CampaignDef g_campaigns [16]
uint32_t g_campaign_count
int32_t g_active_custom_campaign
CAppMenug_campaign_app_menu
startGame_ptr s_start_game
playCampaignIntro_ptr s_play_campaign_intro
getBasePathString_ptr s_get_base_path_string
gameInfoSetAvatarType_ptr s_gameinfo_set_avatar_type
CreateMnuHintExt_ptr CreateMnuHintExt
CreateMenuPreMulti_ptr CreateMenuPreMulti
importFromSave_ptr importFromSave

Detailed Description

Custom Campaign selection screen and launch via the vanilla pre-game flow.

FULL reimplementation of CAppMenu::PrepareNewGame - PROTOTYPE.

Macro Definition Documentation

◆ CAMPAIGN_AUTHOR_H

#define CAMPAIGN_AUTHOR_H   28

Definition at line 691 of file sf_campaign_hook.c.

◆ CAMPAIGN_AUTHOR_Y

#define CAMPAIGN_AUTHOR_Y   88

Definition at line 690 of file sf_campaign_hook.c.

◆ CAMPAIGN_DESC_H

#define CAMPAIGN_DESC_H   360

Definition at line 693 of file sf_campaign_hook.c.

◆ CAMPAIGN_DESC_WRAP

#define CAMPAIGN_DESC_WRAP   40

Character width the description wraps at, matching the mod info panel.

Definition at line 700 of file sf_campaign_hook.c.

◆ CAMPAIGN_DESC_Y

#define CAMPAIGN_DESC_Y   140

Definition at line 692 of file sf_campaign_hook.c.

◆ CAMPAIGN_NAME_H

#define CAMPAIGN_NAME_H   48

Definition at line 689 of file sf_campaign_hook.c.

◆ CAMPAIGN_NAME_Y

#define CAMPAIGN_NAME_Y   32

Definition at line 688 of file sf_campaign_hook.c.

◆ CAMPAIGN_PANEL_WIDTH

#define CAMPAIGN_PANEL_WIDTH   443

Definition at line 687 of file sf_campaign_hook.c.

◆ CAMPAIGN_PLAY_H

#define CAMPAIGN_PLAY_H   36

Definition at line 697 of file sf_campaign_hook.c.

◆ CAMPAIGN_PLAY_W

#define CAMPAIGN_PLAY_W   227

Definition at line 696 of file sf_campaign_hook.c.

◆ CAMPAIGN_PLAY_X

#define CAMPAIGN_PLAY_X   108

Definition at line 694 of file sf_campaign_hook.c.

◆ CAMPAIGN_PLAY_Y

#define CAMPAIGN_PLAY_Y   540

Definition at line 695 of file sf_campaign_hook.c.

◆ CAMPAIGN_ROW_H

#define CAMPAIGN_ROW_H   30

Definition at line 708 of file sf_campaign_hook.c.

◆ CAMPAIGN_ROW_PITCH

#define CAMPAIGN_ROW_PITCH   36

Definition at line 706 of file sf_campaign_hook.c.

◆ CAMPAIGN_ROW_W

#define CAMPAIGN_ROW_W   227

Definition at line 707 of file sf_campaign_hook.c.

◆ CAMPAIGN_ROW_X

#define CAMPAIGN_ROW_X   108

Definition at line 704 of file sf_campaign_hook.c.

◆ CAMPAIGN_ROW_Y_START

#define CAMPAIGN_ROW_Y_START   40

Definition at line 705 of file sf_campaign_hook.c.

◆ SFSF_AVATAR_TYPE_BASE

#define SFSF_AVATAR_TYPE_BASE   8

Custom avatar types run from this value upwards, one per campaign index.

Definition at line 20 of file sf_campaign_hook.h.

◆ SFSF_AVATAR_TYPE_MAX

#define SFSF_AVATAR_TYPE_MAX   (SFSF_AVATAR_TYPE_BASE + SFSF_MAX_CAMPAIGNS - 1)

Definition at line 21 of file sf_campaign_hook.h.

◆ SFSF_CAMPAIGN_TYPE_BASE

#define SFSF_CAMPAIGN_TYPE_BASE   3

Definition at line 17 of file sf_campaign_hook.h.

◆ SFSF_MAX_CAMPAIGNS

#define SFSF_MAX_CAMPAIGNS   16

Definition at line 16 of file sf_campaign_hook.h.

Typedef Documentation

◆ AC82_Zero_ptr

typedef void(__thiscall * AC82_Zero_ptr) (AutoClass82 *_this)

Definition at line 40 of file sf_campaign_hook.c.

◆ AC95_get_figure_name_ptr

typedef SF_String *(__thiscall * AC95_get_figure_name_ptr) (void *AC95, SF_String *name_buffer, uint32_t figure_id)

Definition at line 55 of file sf_campaign_hook.c.

◆ appMenuEnterCampaignFlow_ptr

typedef void(__thiscall * appMenuEnterCampaignFlow_ptr) (CAppMenu *_this, uint32_t param_1)

Definition at line 53 of file sf_campaign_hook.h.

◆ avatarInternalCopy_ptr

typedef GdAvatarInternal *(__thiscall * avatarInternalCopy_ptr) (GdAvatarInternal *dest, GdAvatarInternal *src)

Definition at line 47 of file sf_campaign_hook.h.

◆ avatarVectorsCopy_ptr

typedef void(__thiscall * avatarVectorsCopy_ptr) (void *dest_vectors, void *src_vectors)

Definition at line 50 of file sf_campaign_hook.h.

◆ checkFileExists_ptr

typedef uint32_t(__cdecl * checkFileExists_ptr) (SF_String *name)

The engine's file existence check, resolved by initialize_campaign_hooks().

Paths are taken relative to the game directory, e.g. "map\\mycampaign\\start.map".

Definition at line 70 of file sf_campaign_hook.h.

◆ CMnuBaseFlagGetter_ptr

typedef uint32_t(__thiscall * CMnuBaseFlagGetter_ptr) (CMnuBase *_this)

Definition at line 42 of file sf_campaign_hook.c.

◆ CUiGame_009a1fd0_ptr

typedef void(__thiscall * CUiGame_009a1fd0_ptr) (void *_this, uint32_t param1)

Definition at line 45 of file sf_campaign_hook.c.

◆ CUiGameZero_ptr

typedef void(__thiscall * CUiGameZero_ptr) (void *_this)

Definition at line 44 of file sf_campaign_hook.c.

◆ CUtlCallBackInit_ptr

typedef void(__thiscall * CUtlCallBackInit_ptr) (void *_this, void *param1, void *param2, uint32_t param3)

Definition at line 43 of file sf_campaign_hook.c.

◆ gameInfoSetAvatarType_ptr

typedef void(__thiscall * gameInfoSetAvatarType_ptr) (SF_GameInfo *_this, uint16_t avatar_type)

Definition at line 51 of file sf_campaign_hook.h.

◆ gameInfoSetMapPathFull_ptr

typedef void(__thiscall * gameInfoSetMapPathFull_ptr) (SF_GameInfo *_this, SF_String *map_path)

Definition at line 52 of file sf_campaign_hook.h.

◆ getBasePathString_ptr

typedef char **(__cdecl * getBasePathString_ptr) (void *out_string_obj)

Definition at line 63 of file sf_campaign_hook.h.

◆ GetDataStorageLocation_ptr

typedef LPCSTR *(__cdecl * GetDataStorageLocation_ptr) (char **param_1, uint32_t type)

Definition at line 37 of file sf_campaign_hook.c.

◆ getSavePath_real_ptr

typedef SF_String *(__thiscall * getSavePath_real_ptr) (SF_String *_this, int campaign_type)

Definition at line 61 of file sf_campaign_hook.h.

◆ initDefaultInfo_ptr

typedef SF_GameInfo *(__thiscall * initDefaultInfo_ptr) (SF_GameInfo *_this)

Definition at line 39 of file sf_campaign_hook.c.

◆ playCampaignIntro_ptr

typedef void(__fastcall * playCampaignIntro_ptr) (CAppMenu *_this)

Definition at line 54 of file sf_campaign_hook.h.

◆ prepareTransition_ptr

typedef void(__thiscall * prepareTransition_ptr) (CAppMenu *_this, uint32_t param_1, uint32_t param_2)

Definition at line 38 of file sf_campaign_hook.c.

◆ some_vector_fun_ptr

typedef void(__thiscall * some_vector_fun_ptr) (void *_this, uint32_t *size)

Definition at line 41 of file sf_campaign_hook.c.

◆ startGame_ptr

typedef void(__thiscall * startGame_ptr) (CAppMenu *_this, SF_GameInfo *game_info, uint32_t param_2, uint32_t param_3, uint32_t param_4, uint32_t coord, SF_String *param_6)

Definition at line 56 of file sf_campaign_hook.h.

◆ videoSequenceStop_ptr

typedef void(__thiscall * videoSequenceStop_ptr) (SF_CUiVideoSequence *_this)

Definition at line 55 of file sf_campaign_hook.h.

Function Documentation

◆ build_load_path()

SF_String * build_load_path ( CAppMenu * _this,
void * preload,
SF_String * out )

Definition at line 134 of file sf_prepare_new_game.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ campaign_hook_on_main_menu()

void campaign_hook_on_main_menu ( CAppMenu * app_menu)

Definition at line 721 of file sf_campaign_hook.c.

Here is the caller graph for this function:

◆ campaign_launch_flow()

void campaign_launch_flow ( int32_t campaign_index)

Definition at line 755 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkDirs()

void checkDirs ( CAppSession * _this)

Definition at line 153 of file sf_campaign_hook.c.

Here is the call graph for this function:

◆ close_campaign_screen_callback()

void close_campaign_screen_callback ( CMnuSmpButton * button)

Definition at line 828 of file sf_campaign_hook.c.

Here is the caller graph for this function:

◆ getHdrStringID()

uint32_t __thiscall getHdrStringID ( uint32_t camp_type)

Definition at line 354 of file sf_campaign_hook.c.

◆ getSavePath()

SF_String *__thiscall getSavePath ( CAppSession * _this,
SF_String * output,
uint32_t campaign_type )

Definition at line 226 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hooked_prepare_new_game()

void __thiscall hooked_prepare_new_game ( CAppMenu * _this,
CUiMenuPreLoad * preload )

Definition at line 176 of file sf_prepare_new_game.c.

Here is the call graph for this function:

◆ initFirstMap()

void __thiscall initFirstMap ( SF_GameInfo * _this,
uint32_t skip_tutorial,
uint8_t skill,
uint8_t subskill,
uint32_t campaign_id,
bool is_shadowblade )

Proper map selection code for the future.

Parameters
_thisPointer to the game info structure that holds most of the info we need
skip_tutorialTotu
skillPrimary skill for the newly created avatar
subskillSecondary skill for the newly created avatar
campaign_idCampaign ID we're loading. (0 - Order, 1 - Aryn, 2 - Phoenix)
is_shadowbladeSotP side flag, used only for the third vanilla campaign

Definition at line 498 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_campaign_hooks()

void initialize_campaign_hooks ( )

Definition at line 73 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_preparenewgame_rewrite()

void initialize_preparenewgame_rewrite ( )
extern

Definition at line 64 of file sf_prepare_new_game.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isDirectoryExists()

int isDirectoryExists ( const char * path)

Definition at line 143 of file sf_campaign_hook.c.

Here is the caller graph for this function:

◆ loadQuickSave()

void __thiscall loadQuickSave ( CAppMenu * _this,
uint32_t unknown )

Definition at line 412 of file sf_campaign_hook.c.

Here is the call graph for this function:

◆ on_campaign_play()

void __thiscall on_campaign_play ( CMnuSmpButton * _this)

Play button callback - launches whatever the list has selected.

Play button callback - launches the campaign currently selected in the list.

Definition at line 817 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_campaign_selected()

void __thiscall on_campaign_selected ( CMnuSmpButton * _this)

Left panel row callback.

Per-campaign list row callback - selects the campaign, does not launch it.

Definition at line 803 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pn_preload_get_skip_tutorial()

uint8_t __thiscall pn_preload_get_skip_tutorial ( CUiMenuPreLoad * _this)

Definition at line 122 of file sf_prepare_new_game.c.

Here is the caller graph for this function:

◆ quickLoad_helper()

uint8_t __thiscall quickLoad_helper ( SF_CUiMain * _this)

Definition at line 296 of file sf_campaign_hook.c.

Here is the call graph for this function:

◆ register_campaign()

int32_t register_campaign ( const SFSF_CampaignDef * def)

Registers a campaign definition. Returns campaign index or -1.

Definition at line 122 of file sf_campaign_hook.c.

Here is the call graph for this function:

◆ show_custom_campaign_screen()

void __thiscall show_custom_campaign_screen ( CMnuSmpButton * _this)

Builds the campaign screen.

Main-menu button callback - builds and toggles the campaign screen.

Definition at line 840 of file sf_campaign_hook.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stop_intro_video()

void stop_intro_video ( CAppMenu * app_menu)

Definition at line 744 of file sf_campaign_hook.c.

Here is the caller graph for this function:

Variable Documentation

◆ AC82_Zero

AC82_Zero_ptr AC82_Zero

Definition at line 52 of file sf_campaign_hook.c.

◆ AC95_get_figure_name

AC95_get_figure_name_ptr AC95_get_figure_name
extern

Definition at line 53 of file sf_vanilla_fix_hook.c.

◆ checkFileExists [1/2]

checkFileExists_ptr checkFileExists

Definition at line 64 of file sf_campaign_hook.c.

◆ checkFileExists [2/2]

checkFileExists_ptr checkFileExists
extern

Definition at line 64 of file sf_campaign_hook.c.

◆ CMnuBaseIsVisible

CMnuBaseFlagGetter_ptr CMnuBaseIsVisible

Definition at line 49 of file sf_campaign_hook.c.

◆ CreateMenuPreMulti

CreateMenuPreMulti_ptr CreateMenuPreMulti

Definition at line 56 of file sf_prepare_new_game.c.

◆ CreateMnuHintExt

CreateMnuHintExt_ptr CreateMnuHintExt

Definition at line 55 of file sf_prepare_new_game.c.

◆ CUiGame_009a1fd0

CUiGame_009a1fd0_ptr CUiGame_009a1fd0

Definition at line 54 of file sf_campaign_hook.c.

◆ CUiGameZero

CUiGameZero_ptr CUiGameZero

Definition at line 53 of file sf_campaign_hook.c.

◆ CUtlCallBackInit

CUtlCallBackInit_ptr CUtlCallBackInit

Definition at line 61 of file sf_campaign_hook.c.

◆ g_active_custom_campaign [1/2]

int32_t g_active_custom_campaign = -1

-1 = vanilla / none active

Definition at line 119 of file sf_campaign_hook.c.

◆ g_active_custom_campaign [2/2]

int32_t g_active_custom_campaign
extern

-1 = vanilla / none active

Definition at line 119 of file sf_campaign_hook.c.

◆ g_campaign_app_menu [1/2]

CAppMenu* g_campaign_app_menu = NULL

Stashed by sf_menu_hook on menu build untested and probably will crash us

Definition at line 120 of file sf_campaign_hook.c.

◆ g_campaign_app_menu [2/2]

CAppMenu* g_campaign_app_menu
extern

Stashed by sf_menu_hook on menu build untested and probably will crash us

Definition at line 120 of file sf_campaign_hook.c.

◆ g_campaign_count [1/2]

uint32_t g_campaign_count = 0

Definition at line 118 of file sf_campaign_hook.c.

◆ g_campaign_count [2/2]

uint32_t g_campaign_count
extern

Definition at line 118 of file sf_campaign_hook.c.

◆ g_campaigns [1/2]

SFSF_CampaignDef g_campaigns[16]

Definition at line 117 of file sf_campaign_hook.c.

◆ g_campaigns [2/2]

SFSF_CampaignDef g_campaigns[16]
extern

Definition at line 117 of file sf_campaign_hook.c.

◆ importFromSave

importFromSave_ptr importFromSave

Definition at line 61 of file sf_prepare_new_game.c.

◆ initDefaultInfo

initDefaultInfo_ptr initDefaultInfo

Definition at line 51 of file sf_campaign_hook.c.

◆ prepareTransition

prepareTransition_ptr prepareTransition

Definition at line 50 of file sf_campaign_hook.c.

◆ s_gameinfo_set_avatar_type [1/2]

gameInfoSetAvatarType_ptr s_gameinfo_set_avatar_type

Definition at line 35 of file sf_campaign_hook.c.

◆ s_gameinfo_set_avatar_type [2/2]

gameInfoSetAvatarType_ptr s_gameinfo_set_avatar_type
extern

Definition at line 35 of file sf_campaign_hook.c.

◆ s_get_base_path_string [1/2]

getBasePathString_ptr s_get_base_path_string

Definition at line 34 of file sf_campaign_hook.c.

◆ s_get_base_path_string [2/2]

getBasePathString_ptr s_get_base_path_string
extern

Definition at line 34 of file sf_campaign_hook.c.

◆ s_play_campaign_intro [1/2]

playCampaignIntro_ptr s_play_campaign_intro

Definition at line 33 of file sf_campaign_hook.c.

◆ s_play_campaign_intro [2/2]

playCampaignIntro_ptr s_play_campaign_intro
extern

Definition at line 33 of file sf_campaign_hook.c.

◆ s_start_game [1/2]

startGame_ptr s_start_game

Definition at line 32 of file sf_campaign_hook.c.

◆ s_start_game [2/2]

startGame_ptr s_start_game
extern

Definition at line 32 of file sf_campaign_hook.c.

◆ some_vector_dispose

some_vector_fun_ptr some_vector_dispose

Definition at line 60 of file sf_campaign_hook.c.

◆ some_vector_init

some_vector_fun_ptr some_vector_init

Definition at line 59 of file sf_campaign_hook.c.