Path: blob/master/SonicMania/Objects/Global/APICallback.h
338 views
#ifndef OBJ_APICALLBACK_H1#define OBJ_APICALLBACK_H23#include "Game.h"45#if MANIA_USE_PLUS6#define sku_platform SKU->platform7#define sku_language SKU->language8#define sku_region SKU->region910#define API_GetConfirmButtonFlip API.GetConfirmButtonFlip11#define API_UnlockAchievement(info) API.TryUnlockAchievement(info)12#define API_SetAchievementsEnabled(enabled) API.SetAchievementsEnabled(enabled)13#define API_GetAchievementsEnabled() API.GetAchievementsEnabled()14#define API_SetRichPresence API.SetRichPresence15#define API_LaunchManual API.LaunchManual16#define API_LoadUserFile API.LoadUserFile17#define API_SaveUserFile API.SaveUserFile18#define API_GetNoSave() API.GetNoSave()19#define API_SetNoSave(status) API.SetNoSave(status)20#define API_GetUserAuthStatus API.GetUserAuthStatus21#define API_ClearPrerollErrors API.ClearPrerollErrors22#define API_GetInputDeviceID RSDK.GetInputDeviceID23#define API_AssignInputSlotToDevice RSDK.AssignInputSlotToDevice24#define API_IsInputDeviceAssigned(deviceID) RSDK.IsInputDeviceAssigned(deviceID)25#define API_IsInputSlotAssigned(inputSlot) RSDK.IsInputSlotAssigned(inputSlot)26#define API_GetFilteredInputDeviceID RSDK.GetFilteredInputDeviceID27#define API_ResetInputSlotAssignments RSDK.ResetInputSlotAssignments28#define API_GetInputDeviceType RSDK.GetInputDeviceType29#define API_GetUsername API.GetUsername30#define API_ReadLeaderboardEntry API.ReadLeaderboardEntry31#else32#define sku_platform GameInfo->platform33#define sku_language GameInfo->language34#define sku_region GameInfo->region3536#define API_GetConfirmButtonFlip APICallback_GetConfirmButtonFlip37#define API_UnlockAchievement(info) APICallback_UnlockAchievement((info)->id)38#define API_SetAchievementsEnabled(enabled) APICallback->achievementsDisabled = !(enabled)39#define API_GetAchievementsEnabled() !APICallback->achievementsDisabled40#define API_SetRichPresence APICallback_SetRichPresence41#define API_LaunchManual APICallback_LaunchManual42#define API_LoadUserFile APICallback_LoadUserFile43#define API_SaveUserFile APICallback_SaveUserFile44#define API_GetNoSave() globals->noSave45#define API_SetNoSave(status) globals->noSave = status46#define API_GetUserAuthStatus APICallback_GetUserAuthStatus47#define API_ClearPrerollErrors APICallback_ClearPrerollErrors48#define API_GetInputDeviceID APICallback_ControllerIDForInputID49#define API_AssignInputSlotToDevice APICallback_AssignControllerID50#define API_IsInputDeviceAssigned(deviceID) ; // doesn't exist in preplus afaik51#define API_IsInputSlotAssigned(inputSlot) !APICallback_InputIDIsDisconnected(inputSlot)52#define API_GetFilteredInputDeviceID APICallback_MostRecentActiveControllerID53#define API_ResetInputSlotAssignments APICallback_ResetControllerAssignments54#define API_GetInputDeviceType APICallback_GetControllerType55#define API_GetUsername APICallback_GetUsername56#define API_ReadLeaderboardEntry APICallback_ReadLeaderboardEntry57#endif5859// 90% sure this is "DialogRunner" in plus/1.0560#if !MANIA_USE_PLUS61// Object Class62struct ObjectAPICallback {63RSDK_OBJECT64int32 (*LaunchManual)(void);65int32 (*ExitGame)(void);66void (*ClearAchievements)(void);67int32 (*UnlockAchievement)(AchievementID *);68int32 (*SetRichPresence)(int32, String *);69int32 (*LoadUserFile)(const char *, void *, size_t, void (*)(int32));70int32 (*SaveUserFile)(const char *, void *, size_t, void (*)(int32));71void (*SaveSettingsINI)(void);72int32 (*GetUserLanguage)(void);73int32 (*GetConfirmButtonFlip)(void);74int32 (*FetchLeaderboard)(uint8, uint8, int32, int32, int32, int32);75int32 (*LeaderboardStatus)(void);76int32 (*LeaderboardEntryCount)(void);77LeaderboardEntry *(*LeaderboardReadEntry)(int32);78void (*TrackActClear)(uint8, uint8, uint8, int32, int32, int32);79void (*TrackTAClear)(int32, int32, int32, int32);80void (*TrackEnemyDefeat)(uint8 zoneID, uint8 actID, uint8 playerID, int32 entityX, int32 entityY);81void (*TrackGameProgress)(int32);82int32 (*ClearPrerollErrors)(void);83int32 (*TryAuth)(void);84int32 (*GetUserAuthStatus)(void);85int32 (*GetUsername)(String *userName);86int32 (*TryInitStorage)(void);87int32 (*GetStorageStatus)(int32);88int32 (*ControllerIDForInputID)(uint8 inputSlot);89int32 (*MostRecentActiveControllerID)(uint8 inputSlot);90void (*AssignControllerID)(uint8 inputSlot, uint32 deviceID);91void (*ResetControllerAssignments)(void);92int32 (*InputIDIsDisconnected)(uint8 inputSlot);93void *GetInputType;94int32 (*GetControllerType)(int32 deviceID);95int32 (*ShowSteamControllerOverlay)(int32 overlay);96int32 saveStatus;97bool32 authForbidden;98bool32 signedOut;99int32 prevLeaderboardEntry;100int32 unused;101int32 isAutoSaving;102int32 statusTimer;103int32 leaderboardsStatus;104int32 leaderboardEntryCount;105int32 rankScore;106int32 prevIsUser;107int32 prevRank;108LeaderboardEntry leaderboardEntry;109int32 inputSlots[PLAYER_COUNT];110int32 controllerCount;111Entity *activeEntity;112int32 authStatus;113int32 storageStatus;114bool32 achievementsDisabled;115};116117// Entity Class118struct EntityAPICallback {119RSDK_ENTITY120StateMachine(state);121int32 timer;122void (*callback)(void);123const char *fileName;124void *fileBuffer;125uint32 fileSize;126void (*fileCallback)(int32);127int32 unused;128int32 minVelocity;129int32 deviceID;130int32 unused3;131int32 status;132};133134// Object Struct135extern ObjectAPICallback *APICallback;136137// Standard Entity Events138void APICallback_Update(void);139void APICallback_LateUpdate(void);140void APICallback_StaticUpdate(void);141void APICallback_Draw(void);142void APICallback_Create(void *data);143void APICallback_StageLoad(void);144#if GAME_INCLUDE_EDITOR145void APICallback_EditorDraw(void);146void APICallback_EditorLoad(void);147#endif148void APICallback_Serialize(void);149150// Extra Entity Functions151void APICallback_SetRichPresence(int32 id, String *msg);152int32 APICallback_GetUserLanguage(void);153bool32 APICallback_GetConfirmButtonFlip(void);154void APICallback_SetNoSaveEnabled(void);155void APICallback_SetNoSaveDisabled(void);156void APICallback_SaveUserFile(const char *name, void *buffer, int32 size, void (*callback)(int32));157void APICallback_SaveCB(void);158void APICallback_SaveSettingsINI(void);159LeaderboardEntry *APICallback_ReadLeaderboardEntry(int32 rankID);160void APICallback_NotifyAutoSave_OK(void);161void APICallback_NotifyAutoSave_CB(void);162void APICallback_PromptSavePreference_CB(void);163void APICallback_PromptSavePreference(int32 status);164void APICallback_LoadUserFile(const char *name, void *buffer, int32 size, void (*callback)(int32));165void APICallback_LoadCB(void);166int32 APICallback_LeaderboardStatus(void);167int32 APICallback_LeaderboardEntryCount(void);168void APICallback_LaunchManual(void);169void APICallback_HandleCallback(void);170int32 APICallback_GetUserAuthStatus(void);171int32 APICallback_GetStorageStatus(void);172int32 APICallback_GetSaveStatus(void);173int32 APICallback_GetControllerType(int32 id);174int32 APICallback_FetchLeaderboardData(uint8 zoneID, uint8 actID, int32 playerID, int32 start, int32 end, bool32 isUser);175void APICallback_ExitGame(void);176void APICallback_ClearPrerollErrors(void);177bool32 APICallback_CheckInputDisconnected(void);178bool32 APICallback_InputIDIsDisconnected(uint8 inputSlot);179int32 APICallback_ControllerIDForInputID(uint8 inputSlot);180int32 APICallback_MostRecentActiveControllerID(uint8 inputSlot);181void APICallback_AssignControllerID(uint8 inputSlot, int32 deviceID);182void APICallback_ResetControllerAssignments(void);183void APICallback_TrackActClear(uint8 zoneID, uint8 actID, uint8 playerID, int32 time, int32 rings, int32 score);184void APICallback_TrackTAClear(uint8 zoneID, uint8 actID, uint8 playerID, int32 time);185void APICallback_TrackEnemyDefeat(uint8 zoneID, uint8 actID, uint8 playerID, int32 x, int32 y);186void APICallback_TrackGameProgress(float percent);187void APICallback_TryAuth_No(void);188void APICallback_TryAuth_Yes(void);189void APICallback_TryAuth_CB(void);190int32 APICallback_TryAuth(void);191void APICallback_TryInitStorage(void);192bool32 APICallback_GetUsername(String *userName);193void APICallback_ClearAchievements(void);194void APICallback_UnlockAchievement(const char *name);195void APICallback_CheckUserAuth_OK(void);196void APICallback_CheckUserAuth_CB(void);197void APICallback_TrackGameProgressCB(void);198void APICallback_GetNextNotif(void);199void APICallback_ManageNotifs(void);200bool32 APICallback_CheckUnreadNotifs(void);201bool32 APICallback_NotifyAutosave(void);202#endif203204#endif //! OBJ_APICALLBACK_H205206207