Closed MegAmi24 closed 6 months ago
It would be worth making a function in the RSDK library instead to detect which game is currently running, rather than working it out on a per-code basis.
For example;
public EGame GetCurrentGame()
{
// ...
return EGame.Unknown;
}
public enum EGame
{
Unknown = -1,
Sonic1,
SonicCD,
Sonic2,
Sonic3K
}
That'd be great, however my current implementation of the game check can only distinguish between Sonic 1 and 2; it doesn't work for CD or S3&K. I'm not sure how Origins properly stores which game you're currently playing, and even if I did, writing SigScans for RAM memory sounds like a nightmare to me at the moment.
You can check the RSDK version for CD and S3K.
Alright, I've added about all I wanted to.
All codes for S3K appear to be working as expected.
Get[Game]Globals()
functions to return them (and updated existing codes to use them where appropriate)GetEngineVersion()
,GetCurrentGame()
, andGetPlayMode()
functions to the RSDK library (and updated existing codes to use them where appropriate)GetRSDKGlobalsPtr()
returning a pointer to a globals pointer instead of the globals pointer itselfGetRSDKGlobalsOffset()
andGetRSDKGlobalsAbsPtr()
as their existence was questionable and have no purpose now thatGetRSDKGlobalsPtr()
is fixedInit()
function in the RSDK library now has theLibraryInitializer
attributeHelpers
andStringMapOperation
libraries are now Global librariesSetGlobalVariables
bridge library is now used to handle which variables are set in an unmanaged function called when the games load. This fixes the initial stage load issue with the shield/item codes.WriteProtected
inDisable Super Music
Enable Blue Spheres Options in Title Screen
and various medal mod/secret codes for Sonic 3 & Knuckles