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%"
+ }
+}