Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Rubberduckycooly
GitHub Repository: Rubberduckycooly/RSDKv5-Decompilation
Path: blob/master/RSDKv5/RSDK/User/Dummy/DummyCore.cpp
1168 views
1
#if RETRO_REV02
2
DummyCore *dummyCore = NULL;
3
4
uint32 GetAPIValueID(const char *identifier, int32 charIndex)
5
{
6
if (identifier[charIndex])
7
return (33 * GetAPIValueID(identifier, charIndex + 1)) ^ identifier[charIndex];
8
else
9
return 5381;
10
}
11
12
int32 GetAPIValue(uint32 id)
13
{
14
switch (id) {
15
default: break;
16
17
case 0x3D6BD740: // SYSTEM_PLATFORM
18
19
// Platform Overrides
20
#if RETRO_PLATFORM == RETRO_PS4
21
return PLATFORM_PS4;
22
#elif RETRO_PLATFORM == RETRO_XB1
23
return PLATFORM_XB1;
24
#elif RETRO_PLATFORM == RETRO_SWITCH || RETRO_PLATFORM == RETRO_ANDROID
25
return PLATFORM_SWITCH;
26
#endif
27
28
// default to PC (or dev if dev stuff is enabled)
29
return engine.devMenu ? PLATFORM_DEV : PLATFORM_PC;
30
31
case 0xD9F55367: return REGION_US; // SYSTEM_REGION
32
33
case 0x0CC0762D: return LANGUAGE_EN; // SYSTEM_LANGUAGE
34
35
case 0xA2ACEF21: return engine.confirmFlip; // SYSTEM_CONFIRM_FLIP
36
37
case 0x4205582D: return 120; // SYSTEM_LEADERBOARD_LOAD_TIME
38
39
case 0xDEF3F8B5: return STATUS_OK; // SYSTEM_LEADERBOARD_STATUS
40
41
case 0x5AD68EAB: return STATUS_OK; // SYSTEM_USERSTORAGE_AUTH_STATUS
42
43
case 0x884E705A: return STATUS_OK; // SYSTEM_USERSTORAGE_STORAGE_STATUS
44
45
case 0xBDF4E94A: return 30; // SYSTEM_USERSTORAGE_AUTH_TIME
46
47
case 0xD77E98BE: return 30; // SYSTEM_USERSTORAGE_STORAGE_INIT_TIME
48
49
case 0x5AF715C2: return 30; // SYSTEM_USERSTORAGE_STORAGE_LOAD_TIME
50
51
case 0x54378EC5: return 30; // SYSTEM_USERSTORAGE_STORAGE_SAVE_TIME
52
53
case 0xCD44607D: return 30; // SYSTEM_USERSTORAGE_STORAGE_DELETE_TIME
54
}
55
56
return 0;
57
}
58
59
DummyCore *InitDummyCore()
60
{
61
// Initalize API subsystems
62
DummyCore *core = new DummyCore;
63
64
if (achievements)
65
delete achievements;
66
achievements = new DummyAchievements;
67
68
if (leaderboards)
69
delete leaderboards;
70
leaderboards = new DummyLeaderboards;
71
72
if (richPresence)
73
delete richPresence;
74
richPresence = new DummyRichPresence;
75
76
if (stats)
77
delete stats;
78
stats = new DummyStats;
79
80
if (userStorage)
81
delete userStorage;
82
userStorage = new DummyUserStorage;
83
84
return core;
85
}
86
87
#endif
88
89
#if RETRO_REV02
90
const char *userValueNames[8] = { "Ext <PLUS>" };
91
void DummyCore::StageLoad()
92
{
93
UserCore::StageLoad();
94
95
#if !RSDK_AUTOBUILD
96
for (int32 v = 0; v < valueCount; ++v) AddViewableVariable(userValueNames[v], &values[v], VIEWVAR_BOOL, false, true);
97
#else
98
// disable plus on autobuilds
99
for (int32 v = 0; v < valueCount; ++v) values[v] = false;
100
#endif
101
}
102
103
bool32 DummyCore::CheckFocusLost() { return focusState != 0; }
104
105
int32 DummyCore::GetUserLanguage() { return GetAPIValue(GetAPIValueID("SYSTEM_LANGUAGE", 0)); }
106
int32 DummyCore::GetUserRegion() { return GetAPIValue(GetAPIValueID("SYSTEM_REGION", 0)); }
107
int32 DummyCore::GetUserPlatform() { return GetAPIValue(GetAPIValueID("SYSTEM_PLATFORM", 0)); }
108
bool32 DummyCore::GetConfirmButtonFlip() { return GetAPIValue(GetAPIValueID("SYSTEM_CONFIRM_FLIP", 0)); }
109
110
void DummyCore::LaunchManual()
111
{
112
// LaunchManual() just opens the mania manual URL, thats it
113
#if (RETRO_RENDERDEVICE_SDL2 || RETRO_AUDIODEVICE_SDL2 || RETRO_INPUTDEVICE_SDL2)
114
115
#if (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(2, 0, 14))
116
SDL_OpenURL("http://www.sonicthehedgehog.com/mania/manual");
117
#else
118
PrintLog(PRINT_NORMAL, "EMPTY LaunchManual()");
119
#endif
120
121
#else
122
PrintLog(PRINT_NORMAL, "EMPTY LaunchManual()");
123
#endif
124
}
125
void DummyCore::ExitGame() { RenderDevice::isRunning = false; }
126
127
int32 DummyCore::GetDefaultGamepadType()
128
{
129
#if RETRO_REV02
130
int32 platform = curSKU.platform;
131
#else
132
int32 platform = gameVerInfo.platform;
133
#endif
134
135
switch (platform) {
136
case PLATFORM_SWITCH:
137
#if RETRO_INPUTDEVICE_NX
138
return currentNXControllerType;
139
#else
140
return (DEVICE_API_NONE << 16) | (DEVICE_TYPE_CONTROLLER << 8) | (DEVICE_SWITCH_HANDHELD << 0);
141
#endif
142
143
default:
144
case PLATFORM_PS4:
145
case PLATFORM_XB1:
146
case PLATFORM_PC:
147
case PLATFORM_DEV: return (DEVICE_API_NONE << 16) | (DEVICE_TYPE_CONTROLLER << 8) | (0 << 0); break;
148
}
149
}
150
#endif
151