Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Global/APICallback.h
338 views
1
#ifndef OBJ_APICALLBACK_H
2
#define OBJ_APICALLBACK_H
3
4
#include "Game.h"
5
6
#if MANIA_USE_PLUS
7
#define sku_platform SKU->platform
8
#define sku_language SKU->language
9
#define sku_region SKU->region
10
11
#define API_GetConfirmButtonFlip API.GetConfirmButtonFlip
12
#define API_UnlockAchievement(info) API.TryUnlockAchievement(info)
13
#define API_SetAchievementsEnabled(enabled) API.SetAchievementsEnabled(enabled)
14
#define API_GetAchievementsEnabled() API.GetAchievementsEnabled()
15
#define API_SetRichPresence API.SetRichPresence
16
#define API_LaunchManual API.LaunchManual
17
#define API_LoadUserFile API.LoadUserFile
18
#define API_SaveUserFile API.SaveUserFile
19
#define API_GetNoSave() API.GetNoSave()
20
#define API_SetNoSave(status) API.SetNoSave(status)
21
#define API_GetUserAuthStatus API.GetUserAuthStatus
22
#define API_ClearPrerollErrors API.ClearPrerollErrors
23
#define API_GetInputDeviceID RSDK.GetInputDeviceID
24
#define API_AssignInputSlotToDevice RSDK.AssignInputSlotToDevice
25
#define API_IsInputDeviceAssigned(deviceID) RSDK.IsInputDeviceAssigned(deviceID)
26
#define API_IsInputSlotAssigned(inputSlot) RSDK.IsInputSlotAssigned(inputSlot)
27
#define API_GetFilteredInputDeviceID RSDK.GetFilteredInputDeviceID
28
#define API_ResetInputSlotAssignments RSDK.ResetInputSlotAssignments
29
#define API_GetInputDeviceType RSDK.GetInputDeviceType
30
#define API_GetUsername API.GetUsername
31
#define API_ReadLeaderboardEntry API.ReadLeaderboardEntry
32
#else
33
#define sku_platform GameInfo->platform
34
#define sku_language GameInfo->language
35
#define sku_region GameInfo->region
36
37
#define API_GetConfirmButtonFlip APICallback_GetConfirmButtonFlip
38
#define API_UnlockAchievement(info) APICallback_UnlockAchievement((info)->id)
39
#define API_SetAchievementsEnabled(enabled) APICallback->achievementsDisabled = !(enabled)
40
#define API_GetAchievementsEnabled() !APICallback->achievementsDisabled
41
#define API_SetRichPresence APICallback_SetRichPresence
42
#define API_LaunchManual APICallback_LaunchManual
43
#define API_LoadUserFile APICallback_LoadUserFile
44
#define API_SaveUserFile APICallback_SaveUserFile
45
#define API_GetNoSave() globals->noSave
46
#define API_SetNoSave(status) globals->noSave = status
47
#define API_GetUserAuthStatus APICallback_GetUserAuthStatus
48
#define API_ClearPrerollErrors APICallback_ClearPrerollErrors
49
#define API_GetInputDeviceID APICallback_ControllerIDForInputID
50
#define API_AssignInputSlotToDevice APICallback_AssignControllerID
51
#define API_IsInputDeviceAssigned(deviceID) ; // doesn't exist in preplus afaik
52
#define API_IsInputSlotAssigned(inputSlot) !APICallback_InputIDIsDisconnected(inputSlot)
53
#define API_GetFilteredInputDeviceID APICallback_MostRecentActiveControllerID
54
#define API_ResetInputSlotAssignments APICallback_ResetControllerAssignments
55
#define API_GetInputDeviceType APICallback_GetControllerType
56
#define API_GetUsername APICallback_GetUsername
57
#define API_ReadLeaderboardEntry APICallback_ReadLeaderboardEntry
58
#endif
59
60
// 90% sure this is "DialogRunner" in plus/1.05
61
#if !MANIA_USE_PLUS
62
// Object Class
63
struct ObjectAPICallback {
64
RSDK_OBJECT
65
int32 (*LaunchManual)(void);
66
int32 (*ExitGame)(void);
67
void (*ClearAchievements)(void);
68
int32 (*UnlockAchievement)(AchievementID *);
69
int32 (*SetRichPresence)(int32, String *);
70
int32 (*LoadUserFile)(const char *, void *, size_t, void (*)(int32));
71
int32 (*SaveUserFile)(const char *, void *, size_t, void (*)(int32));
72
void (*SaveSettingsINI)(void);
73
int32 (*GetUserLanguage)(void);
74
int32 (*GetConfirmButtonFlip)(void);
75
int32 (*FetchLeaderboard)(uint8, uint8, int32, int32, int32, int32);
76
int32 (*LeaderboardStatus)(void);
77
int32 (*LeaderboardEntryCount)(void);
78
LeaderboardEntry *(*LeaderboardReadEntry)(int32);
79
void (*TrackActClear)(uint8, uint8, uint8, int32, int32, int32);
80
void (*TrackTAClear)(int32, int32, int32, int32);
81
void (*TrackEnemyDefeat)(uint8 zoneID, uint8 actID, uint8 playerID, int32 entityX, int32 entityY);
82
void (*TrackGameProgress)(int32);
83
int32 (*ClearPrerollErrors)(void);
84
int32 (*TryAuth)(void);
85
int32 (*GetUserAuthStatus)(void);
86
int32 (*GetUsername)(String *userName);
87
int32 (*TryInitStorage)(void);
88
int32 (*GetStorageStatus)(int32);
89
int32 (*ControllerIDForInputID)(uint8 inputSlot);
90
int32 (*MostRecentActiveControllerID)(uint8 inputSlot);
91
void (*AssignControllerID)(uint8 inputSlot, uint32 deviceID);
92
void (*ResetControllerAssignments)(void);
93
int32 (*InputIDIsDisconnected)(uint8 inputSlot);
94
void *GetInputType;
95
int32 (*GetControllerType)(int32 deviceID);
96
int32 (*ShowSteamControllerOverlay)(int32 overlay);
97
int32 saveStatus;
98
bool32 authForbidden;
99
bool32 signedOut;
100
int32 prevLeaderboardEntry;
101
int32 unused;
102
int32 isAutoSaving;
103
int32 statusTimer;
104
int32 leaderboardsStatus;
105
int32 leaderboardEntryCount;
106
int32 rankScore;
107
int32 prevIsUser;
108
int32 prevRank;
109
LeaderboardEntry leaderboardEntry;
110
int32 inputSlots[PLAYER_COUNT];
111
int32 controllerCount;
112
Entity *activeEntity;
113
int32 authStatus;
114
int32 storageStatus;
115
bool32 achievementsDisabled;
116
};
117
118
// Entity Class
119
struct EntityAPICallback {
120
RSDK_ENTITY
121
StateMachine(state);
122
int32 timer;
123
void (*callback)(void);
124
const char *fileName;
125
void *fileBuffer;
126
uint32 fileSize;
127
void (*fileCallback)(int32);
128
int32 unused;
129
int32 minVelocity;
130
int32 deviceID;
131
int32 unused3;
132
int32 status;
133
};
134
135
// Object Struct
136
extern ObjectAPICallback *APICallback;
137
138
// Standard Entity Events
139
void APICallback_Update(void);
140
void APICallback_LateUpdate(void);
141
void APICallback_StaticUpdate(void);
142
void APICallback_Draw(void);
143
void APICallback_Create(void *data);
144
void APICallback_StageLoad(void);
145
#if GAME_INCLUDE_EDITOR
146
void APICallback_EditorDraw(void);
147
void APICallback_EditorLoad(void);
148
#endif
149
void APICallback_Serialize(void);
150
151
// Extra Entity Functions
152
void APICallback_SetRichPresence(int32 id, String *msg);
153
int32 APICallback_GetUserLanguage(void);
154
bool32 APICallback_GetConfirmButtonFlip(void);
155
void APICallback_SetNoSaveEnabled(void);
156
void APICallback_SetNoSaveDisabled(void);
157
void APICallback_SaveUserFile(const char *name, void *buffer, int32 size, void (*callback)(int32));
158
void APICallback_SaveCB(void);
159
void APICallback_SaveSettingsINI(void);
160
LeaderboardEntry *APICallback_ReadLeaderboardEntry(int32 rankID);
161
void APICallback_NotifyAutoSave_OK(void);
162
void APICallback_NotifyAutoSave_CB(void);
163
void APICallback_PromptSavePreference_CB(void);
164
void APICallback_PromptSavePreference(int32 status);
165
void APICallback_LoadUserFile(const char *name, void *buffer, int32 size, void (*callback)(int32));
166
void APICallback_LoadCB(void);
167
int32 APICallback_LeaderboardStatus(void);
168
int32 APICallback_LeaderboardEntryCount(void);
169
void APICallback_LaunchManual(void);
170
void APICallback_HandleCallback(void);
171
int32 APICallback_GetUserAuthStatus(void);
172
int32 APICallback_GetStorageStatus(void);
173
int32 APICallback_GetSaveStatus(void);
174
int32 APICallback_GetControllerType(int32 id);
175
int32 APICallback_FetchLeaderboardData(uint8 zoneID, uint8 actID, int32 playerID, int32 start, int32 end, bool32 isUser);
176
void APICallback_ExitGame(void);
177
void APICallback_ClearPrerollErrors(void);
178
bool32 APICallback_CheckInputDisconnected(void);
179
bool32 APICallback_InputIDIsDisconnected(uint8 inputSlot);
180
int32 APICallback_ControllerIDForInputID(uint8 inputSlot);
181
int32 APICallback_MostRecentActiveControllerID(uint8 inputSlot);
182
void APICallback_AssignControllerID(uint8 inputSlot, int32 deviceID);
183
void APICallback_ResetControllerAssignments(void);
184
void APICallback_TrackActClear(uint8 zoneID, uint8 actID, uint8 playerID, int32 time, int32 rings, int32 score);
185
void APICallback_TrackTAClear(uint8 zoneID, uint8 actID, uint8 playerID, int32 time);
186
void APICallback_TrackEnemyDefeat(uint8 zoneID, uint8 actID, uint8 playerID, int32 x, int32 y);
187
void APICallback_TrackGameProgress(float percent);
188
void APICallback_TryAuth_No(void);
189
void APICallback_TryAuth_Yes(void);
190
void APICallback_TryAuth_CB(void);
191
int32 APICallback_TryAuth(void);
192
void APICallback_TryInitStorage(void);
193
bool32 APICallback_GetUsername(String *userName);
194
void APICallback_ClearAchievements(void);
195
void APICallback_UnlockAchievement(const char *name);
196
void APICallback_CheckUserAuth_OK(void);
197
void APICallback_CheckUserAuth_CB(void);
198
void APICallback_TrackGameProgressCB(void);
199
void APICallback_GetNextNotif(void);
200
void APICallback_ManageNotifs(void);
201
bool32 APICallback_CheckUnreadNotifs(void);
202
bool32 APICallback_NotifyAutosave(void);
203
#endif
204
205
#endif //! OBJ_APICALLBACK_H
206
207