Maelstrom: Added Steam Rich Presence support

From ebbda2373cca187e7dc3d96e76fee750f9ea650f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 17 Mar 2026 22:36:36 -0700
Subject: [PATCH] Added Steam Rich Presence support

---
 game/steam.cpp                 | 5 +++++
 steam/assets/rich_presence.txt | 8 ++++++++
 2 files changed, 13 insertions(+)
 create mode 100644 steam/assets/rich_presence.txt

diff --git a/game/steam.cpp b/game/steam.cpp
index 6ba07903..ce5a0b6d 100644
--- a/game/steam.cpp
+++ b/game/steam.cpp
@@ -142,6 +142,7 @@ void SteamInterface::SetSteamTimelineMode(STEAM_TIMELINE_MODE mode)
 		case STEAM_TIMELINE_MENUS:
 			SteamTimeline()->ClearTimelineTooltip(0.0f);
 			SteamTimeline()->SetTimelineGameMode(k_ETimelineGameMode_Menus);
+			SteamFriends()->SetRichPresence( "steam_display", "" );
 			break;
 		case STEAM_TIMELINE_PLAYING:
 			SteamTimeline()->SetTimelineGameMode(k_ETimelineGameMode_Playing);
@@ -167,6 +168,10 @@ void SteamInterface::SetSteamTimelineLevelStarted(int level)
 
 	SteamTimeline()->AddInstantaneousTimelineEvent("Next Wave", nullptr, icon, 0, 0.0f, k_ETimelineEventClipPriority_None);
 	SteamTimeline()->SetTimelineTooltip(wave, 0.0f);
+
+	SDL_snprintf(wave, sizeof(wave), "%d", level);
+	SteamFriends()->SetRichPresence( "wave", wave );
+	SteamFriends()->SetRichPresence( "steam_display", "#StatusPlaying" );
 }
 
 void SteamInterface::SetSteamTimelineEvent(STEAM_TIMELINE_EVENT event)
diff --git a/steam/assets/rich_presence.txt b/steam/assets/rich_presence.txt
new file mode 100644
index 00000000..b7620c1d
--- /dev/null
+++ b/steam/assets/rich_presence.txt
@@ -0,0 +1,8 @@
+"lang"
+{
+	"Language"	"english"
+	"Tokens"
+	{
+		"#StatusPlaying"	"Wave %wave%"
+	}
+}