SADX Mod Loader
Appearance
HelperFunctions API
Struct
Below is the initialized version of the HelperFunctions struct. For the definition of the struct, you can find that in SADXModInfo.h
HelperFunctions helperFunctions =
{
ModLoaderVer,
&RegisterStartPosition,
&ClearStartPositionList,
&RegisterFieldStartPosition,
&ClearFieldStartPositionList,
&RegisterPathList,
&ClearPathListList,
&RegisterCharacterPVM,
&ClearCharacterPVMList,
&RegisterCommonObjectPVM,
&ClearCommonObjectPVMList,
&RegisterTrialLevel,
&ClearTrialLevelList,
&RegisterTrialSubgame,
&ClearTrialSubgameList,
&GetMainSavePath,
&GetChaoSavePath,
&GetReplaceablePath,
&_ReplaceFile,
&SetWindowTitle,
&RegisterSoundList,
&RegisterMusicFile,
&LoadEXEData,
&LoadDLLData,
&_ReplaceFileForce,
&PushScaleUI,
&PopScaleUI,
&SetScaleFillMode,
&GetScaleFillMode,
&ReplaceTexture,
&MipmapBlacklistGBIX,
&RegisterEnglishVoiceDuration,
&RegisterJapaneseVoiceDuration,
&RegisterCharacterWelds,
&loaderSettings,
&modList,
&weightFuncs,
&RegisterVoice,
&PushInterpolationFix,
&PopInterpolationFix,
&RegisterPermanentTexlist,
&ExpandPVMList,
&UnreplaceFile,
&PrintDebugUnicode,
&PrintDebugLocal,
&PrintDebugCodepage,
&GetFileModIndex,
&ReplaceFileAtIndex
};
Please be aware that all examples on this page will be using
helperFunctionswhich is how the variable is sent to a mod.
Properties
Mod Loader Version
int ModLoaderVer;
This returns the version of the mod loader. This can be used to check if the user has an old version of the mod loader that may not have functionality your mod requires.
if (helperFunctions.ModLoaderVer <= 10)
PrintDebug("This Mod Loader is way out of date.\n");
Mod Loader Settings
LoaderSettings loaderSettings;
Mod List
std::vector<Mod> modlist;
Weight Functions
BasicWeightFuncs weightFuncs;
Functions
Register Start Position
static void RegisterStartPosition(unsigned char character, const StartPosition& position)
Registers a new Start Position for the specified character.
StartPosition myStageStartPos = {
1, // Level ID
0, // Act ID
{ 100.0f, 200.0f, 100.0f }, // Position
0 // Y Rotation
};
// We pass our StagePosition variable as a pointer to this function
// and we have specified Sonic, so the level for this ID would now use
// our StartPosition instead of the original.
helperFunctions.RegisterStartPosition(Characters_Sonic, &myStageStartPos);
Clear Start Position List
static void ClearStartPositionList(unsigned char character)
Clears the Start Positions for the specified character.
// Running this inside of your mod's Init export would
// clear all of Sonic's Start Positions for his stages.
helperFunctions.ClearStartPositionList(Characters_Sonic);
Register Field Position
static void RegisterFieldStartPosition(unsigned char character, const FieldStartPosition& position)
Clear Field Start Position List
static void ClearFieldStartPositionList(unsigned char character)
Register Path List
static void RegisterPathList(const PathDataPtr& paths)
Clear Path List List
static void ClearPathListList()
Register Character PVM
static void RegisterCharacterPVM(unsigned char character, const PVMEntry& pvm)
Clear Character PVM List
static void ClearCharacterPVMList(unsigned char character)
Register Common Object PVM
static void RegisterCommonObjectPVM(const PVMEntry& pvm)
Clear Common Object PVM List
static void ClearCommonObjectPVMList()
Register Trial Level
static void RegisterTrialLevel(unsigned char character, const TrialLevelListEntry& level)
Clear Trial Level List
static void ClearTrialLevelList(unsigned char character)
Register Trial Subgame
static void RegisterTrialSubgame(unsigned char character, const TrialLevelListEntry& level)
Clear Trial Subgame List
static void ClearTrialSubgameList(unsigned char character)
Get Main Save Path
static const char* GetMainSavePath()
Get Chao Save Path
static const char* GetChaoSavePath()
Get Replaceable Path
const char* __cdecl GetReplaceablePath(const char* path)
Replace File
void _ReplaceFile(const char* src, const char* dst)
Set Window Title
void SetWindowTitle(const char* title)
Register Sound List
int RegisterSoundList(const SoundList& list)
Register Music File
int RegisterMusicFile(const MusicInfo& track)
Load EXE Data
void LoadEXEData(const wchar_t* filename, const wchar_t* mod_dir)
Load DLL Data
void LoadDLLData(const wchar_t* filename, const wchar_t* mod_dir)
Replace File Force
void _ReplaceFileForce(const char* src, const char* dst)
Push Scale UI
void PushScaleUI(uiscale::Align align, bool is_background, float ratio_h, float ratio_v)
Pop Scale UI
void PopScaleUI()
Set Scale Fill Mode
void SetScaleFillMode(uiscale::FillMode mode)
Get Scale Fill Mode
uiscale::FillMode GetScaleFillMode()
Replace Texture
void ReplaceTexture(const char* pvm_name, const char* tex_name, const char* file_path, uint32_t gbix, uint32_t width, uint32_t height)
Mipmap Blacklist GBIX
void MipmapBlacklistGBIX(Uint32 index)
Register English Voice Duration
void RegisterEnglishVoiceDuration(const uint16_t voiceID, const uint16_t duration)
Register Japanese Voice Duration
void RegisterJapaneseVoiceDuration(const uint16_t voiceID, const uint16_t duration)
Register Character Welds
void RegisterCharacterWelds(const uint8_t character, const char* iniPath)
Register Voice
uint16_t RegisterVoice(const char* fileJP, const char* fileEN, uint16_t durationJP, uint16_t durationEN)
Push Interpolation Fix
void PushInterpolationFix()
Pop Interpolation Fix
void PopInterpolationFix()
Register Permanent Texlist
void RegisterPermanentTexlist(NJS_TEXLIST* texlist)
Unreplace File
void UnreplaceFile(const char* file)
Expand PVM List
TEX_PVMTABLE* ExpandPVMList(TEX_PVMTABLE* sourcepvmlist, const TEX_PVMTABLE &newpvmentry)
Unreplace File
void UnreplaceFile(const char* file)
Print Debug Unicode
void PrintDebugUnicode(char* utf8)
Print Debug Local
void PrintDebugLocal(char* buf)
Print Debug Codepage
void PrintDebugCodepage(char* buf, unsigned int source_cp)
Get File Mod Index
int GetFileModIndex(const char* path)
Replace File At Index
void ReplaceFileAtIndex(const char* src, const char* dst, int modIndex)