Jump to content

SA2B Mod Loader: Difference between revisions

From SA Docs
No edit summary
No edit summary
 
Line 6: Line 6:
== Struct ==
== Struct ==
Below is the initialized version of the HelperFunctions struct. For the definition of the struct, you can find that in [https://github.com/X-Hax/sa2-mod-loader/blob/master/SA2ModLoader/include/SA2ModInfo.h SA2ModInfo.h]
Below is the initialized version of the HelperFunctions struct. For the definition of the struct, you can find that in [https://github.com/X-Hax/sa2-mod-loader/blob/master/SA2ModLoader/include/SA2ModInfo.h SA2ModInfo.h]
{{Documentation|header=HelperFunctions|content=
{{DocHeader|header=HelperFunctions|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
HelperFunctions helperFunctions =  
HelperFunctions helperFunctions =  
Line 50: Line 50:


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.
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.
{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
if (helperFunctions.ModLoaderVer <= 10)
if (helperFunctions.ModLoaderVer <= 10)
Line 63: Line 63:




{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 74: Line 74:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 88: Line 88:


Registers a Start Position for the specified character.
Registers a Start Position for the specified character.
{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
// This is a declaration of an SA2 StartPosition struct.
// This is a declaration of an SA2 StartPosition struct.
Line 114: Line 114:


Clears the Start Positions for the specified character.  
Clears the Start Positions for the specified character.  
{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 126: Line 126:


Registers a Multiplayer Intro Position for the specified character.  
Registers a Multiplayer Intro Position for the specified character.  
{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 138: Line 138:


Clears all Multiplayer Intro Positions for the specified character.
Clears all Multiplayer Intro Positions for the specified character.
{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 150: Line 150:


Returns the game's Main Save File's path.
Returns the game's Main Save File's path.
{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 161: Line 161:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 172: Line 172:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 183: Line 183:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 194: Line 194:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 205: Line 205:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 216: Line 216:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 227: Line 227:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 238: Line 238:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 249: Line 249:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 260: Line 260:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 271: Line 271:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 282: Line 282:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 293: Line 293:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 304: Line 304:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 315: Line 315:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 326: Line 326:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 337: Line 337:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 348: Line 348:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 359: Line 359:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 370: Line 370:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 381: Line 381:
</syntaxhighlight>
</syntaxhighlight>


{{Documentation|header=Example|content=
{{DocHeader|header=Example Usage|content=
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
 
// TODO: Add proper example.
</syntaxhighlight>
</syntaxhighlight>
}}
}}

Latest revision as of 17:52, 8 October 2025

Source Code


HelperFunctions API

Struct

Below is the initialized version of the HelperFunctions struct. For the definition of the struct, you can find that in SA2ModInfo.h

HelperFunctions

HelperFunctions helperFunctions = 
{
    ModLoaderVer,
    RegisterStartPosition,
    ClearStartPositionList,
    Register2PIntroPosition,
    Clear2PIntroPositionList,
    GetMainSavePath,
    GetChaoSavePath,
    RegisterEndPosition,
    ClearEndPositionList,
    RegisterMission23EndPosition,
    ClearMission23EndPositionList,
    HookExport,
    GetReplaceablePath,
    _ReplaceFile,
    SetWindowTitle,
    debug_text::SetFontSize,
    debug_text::SetFontColor,
    debug_text::DisplayString,
    debug_text::DisplayStringFormatted,
    debug_text::DisplayNumber,
    &loaderSettings,
    &modList,
    &RegisterVoice,
    &ReplaceTexture,
    &UnreplaceFile,
    &PushInterpolationFix,
    &PopInterpolationFix,
};


  Please be aware that all examples on this page will be using helperFunctions which 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.

Example Usage

if (helperFunctions.ModLoaderVer <= 10)
    PrintDebug("This Mod Loader is way out of date.\n");


Mod Loader Settings

LoaderSettings loaderSettings;


Example Usage

// TODO: Add proper example.


Mod List

std::vector<Mod> modlist;


Example Usage

// TODO: Add proper example.


Functions

Register Start Position

void RegisterStartPosition(unsigned char character, const StartPosition& position)

Registers a Start Position for the specified character.

Example Usage

// This is a declaration of an SA2 StartPosition struct.
StartPosition myStageStartPos = { 
    1,                          // Level ID
    0x4000,                     // Single Player Y Rotation 
    0x4000,                     // Multiplayer, Player 1 Y Rotation
    0x4000,                     // Multiplayer, Player 2 Y Rotation
    { 100.0f, 200.0f, 100.0f }, // Single Player Start Position
    { 90.0f, 200.0f, 100.0f },  // Multiplayer, Player 1 Start Position
    { 110.0f, 200.0f, 100.0f }  // Multiplayer, Player 2 Start Position
};

// 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

void ClearStartPositionList(unsigned char character)

Clears the Start Positions for the specified character.

Example Usage

// TODO: Add proper example.


Register 2P Intro Position

void Register2PIntroPosition(unsigned char character, const LevelEndPosition& position)

Registers a Multiplayer Intro Position for the specified character.

Example Usage

// TODO: Add proper example.


Clear 2P Intro Position List

void Clear2PIntroPositionList(unsigned char character)

Clears all Multiplayer Intro Positions for the specified character.

Example Usage

// TODO: Add proper example.


Get Main Save Path

const char* GetMainSavePath()

Returns the game's Main Save File's path.

Example Usage

// TODO: Add proper example.


Get Chao Save Path

const char* GetChaoSavePath()


Example Usage

// TODO: Add proper example.


Register End Position

void RegisterEndPosition(unsigned char character, const StartPosition& position)


Example Usage

// TODO: Add proper example.


Clear End Position List

void ClearEndPositionList(unsigned char character)


Example Usage

// TODO: Add proper example.


Register Mission 2/3 End Position

void RegisterMission23EndPosition(unsigned char character, const LevelEndPosition& position)


Example Usage

// TODO: Add proper example.


Clear Mission 2/3 End Position List

void ClearMission23EndPositionList(unsigned char character)


Example Usage

// TODO: Add proper example.


Hook Export

void HookExport(LPCSTR exportName, const void* newdata)


Example Usage

// TODO: Add proper example.


Get Replaceable Path

const char* __cdecl GetReplaceablePath(const char* path)


Example Usage

// TODO: Add proper example.


Replace File

void _ReplaceFile(const char* src, const char* dst)


Example Usage

// TODO: Add proper example.


Set Window Title

void SetWindowTitle(const wchar_t* title)


Example Usage

// TODO: Add proper example.


Debug Text : Set Font Size

void SetFontSize(float size)


Example Usage

// TODO: Add proper example.


Debug Text : Set Font Color

void SetFontColor(int color)


Example Usage

// TODO: Add proper example.


Debug Text : Display String

void DisplayString(int loc, const char* str)


Example Usage

// TODO: Add proper example.


Debug Text : Display String Formatted

void DisplayStringFormatted(int loc, const char* Format, ...)


Example Usage

// TODO: Add proper example.


Debug Text : Display Number

void DisplayNumber(int loc, int value, int numdigits)


Example Usage

// TODO: Add proper example.


Register Voice

uint16_t RegisterVoice(const char* fileJP, const char* fileEN)


Example Usage

// TODO: Add proper example.


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)


Example Usage

// TODO: Add proper example.


Unreplace File

void UnreplaceFile(const char* file)


Example Usage

// TODO: Add proper example.


Push Interpolation Fix

void PushInterpolationFix()


Example Usage

// TODO: Add proper example.


Pop Interpolation Fix

void PopInterpolationFix()


Example Usage

// TODO: Add proper example.


Get File Mod Index

int GetFileModIndex(const char* path)


Example Usage

// TODO: Add proper example.


Replace File At Index

void ReplaceFileAtIndex(const char* src, const char* dst, int modIndex)


Example Usage

// TODO: Add proper example.