aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/nativefuncs.json14
-rw-r--r--Northstar.Client/mod/scripts/vscripts/cl_northstar_client_init.nut13
-rw-r--r--Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut11
-rw-r--r--Northstar.Client/mod/scripts/vscripts/presence/ui_presence.nut20
4 files changed, 26 insertions, 32 deletions
diff --git a/.github/nativefuncs.json b/.github/nativefuncs.json
index 13a7edd3d..8397232d3 100644
--- a/.github/nativefuncs.json
+++ b/.github/nativefuncs.json
@@ -421,13 +421,7 @@
"helpText":"Returns whether or not a given path leads to a folder.",
"returnTypeString":"bool",
"argTypes":"string path"
- },
- {
- "name":"NSPushGameStateData",
- "helpText":"",
- "returnTypeString":"void",
- "argTypes":"struct gamestate"
- }
+ }
],
"UI":[
{
@@ -724,12 +718,6 @@
"returnTypeString":"bool",
"argTypes":"string path"
},
- {
- "name":"NSPushUIPresence",
- "helpText":"",
- "returnTypeString":"void",
- "argTypes":"struct presence"
- },
{
"name":"NSGetMasterServerAuthResult",
"helpText":"",
diff --git a/Northstar.Client/mod/scripts/vscripts/cl_northstar_client_init.nut b/Northstar.Client/mod/scripts/vscripts/cl_northstar_client_init.nut
index a844478a2..765d29c32 100644
--- a/Northstar.Client/mod/scripts/vscripts/cl_northstar_client_init.nut
+++ b/Northstar.Client/mod/scripts/vscripts/cl_northstar_client_init.nut
@@ -1,3 +1,11 @@
+global enum eDiscordGameState
+{
+ LOADING = 0
+ MAINMENU
+ LOBBY
+ INGAME
+}
+
global struct GameStateStruct {
string map
@@ -15,10 +23,7 @@ global struct GameStateStruct {
}
global struct UIPresenceStruct {
- bool isLoading
- bool isLobby
- string loadingLevel
- string loadedLevel
+ int gameState
}
global struct RequiredModInfo
diff --git a/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut b/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut
index c8a8274a5..f17216fbc 100644
--- a/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut
+++ b/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut
@@ -1,10 +1,8 @@
untyped
globalize_all_functions
-void function NorthstarCodeCallback_GenerateGameState() {
-
- GameStateStruct gs
-
+GameStateStruct function DiscordRPC_GenerateGameState( GameStateStruct gs )
+{
int highestScore = 0
int secondHighest = 0
@@ -40,6 +38,5 @@ void function NorthstarCodeCallback_GenerateGameState() {
gs.timeEnd = expect float(level.nv.roundEndTime - Time())
else
gs.timeEnd = expect float(level.nv.gameEndTime - Time())
-
- NSPushGameStateData(gs)
-} \ No newline at end of file
+ return gs
+}
diff --git a/Northstar.Client/mod/scripts/vscripts/presence/ui_presence.nut b/Northstar.Client/mod/scripts/vscripts/presence/ui_presence.nut
index cdf1c9815..ce5abe865 100644
--- a/Northstar.Client/mod/scripts/vscripts/presence/ui_presence.nut
+++ b/Northstar.Client/mod/scripts/vscripts/presence/ui_presence.nut
@@ -1,12 +1,16 @@
untyped
globalize_all_functions
-void function NorthstarCodeCallback_GenerateUIPresence() {
- UIPresenceStruct uis
+UIPresenceStruct function DiscordRPC_GenerateUIPresence( UIPresenceStruct uis )
+{
+ if ( uiGlobal.isLoading )
+ uis.gameState = eDiscordGameState.LOADING;
+ else if ( uiGlobal.loadedLevel == "" )
+ uis.gameState = eDiscordGameState.MAINMENU;
+ else if ( IsLobby() || uiGlobal.loadedLevel == "mp_lobby" )
+ uis.gameState = eDiscordGameState.LOBBY;
+ else
+ uis.gameState = eDiscordGameState.INGAME;
- uis.isLoading = uiGlobal.isLoading
- uis.isLobby = IsLobby()
- uis.loadingLevel = uiGlobal.loadingLevel
- uis.loadedLevel = uiGlobal.loadedLevel
- NSPushUIPresence(uis)
-} \ No newline at end of file
+ return uis
+}