Maelstrom: Added more Steam timeline events

From 00421b2374bf2506c1e722a07944193400bea12d Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 20 Apr 2026 20:32:25 -0700
Subject: [PATCH] Added more Steam timeline events

---
 game/objects.h |  9 +++++++++
 game/steam.cpp | 36 ++++++++++++++++++++++++++++++++++++
 game/steam.h   |  9 +++++++++
 3 files changed, 54 insertions(+)

diff --git a/game/objects.h b/game/objects.h
index 941a5e79..8fdda619 100644
--- a/game/objects.h
+++ b/game/objects.h
@@ -44,38 +44,45 @@ class Prize : public Object {
 				/* -- They got machine guns! */
 				ship->SetSpecial(MACHINE_GUNS);
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_MACHINE_GUNS");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_MACHINE_GUNS);
 				break;
 			case 1:
 				/* -- They got Air brakes */
 				ship->SetSpecial(AIR_BRAKES);
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_AIR_BRAKES");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_AIR_BRAKES);
 				break;
 			case 2:
 				/* -- They might get Lucky */
 				ship->SetSpecial(LUCKY_IRISH);
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_LUCK");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_LUCK);
 				break;
 			case 3:
 				/* -- They triple fire */
 				ship->SetSpecial(TRIPLE_FIRE);
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_TRIPLE_FIRE");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_TRIPLE_FIRE);
 				break;
 			case 4:
 				/* -- They got long range */
 				ship->SetSpecial(LONG_RANGE);
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_LONG_RANGE");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_LONG_RANGE);
 				break;
 			case 5:
 				/* -- They got more shields */
 				ship->IncrShieldLevel((MAX_SHIELD/5)+
 						FastRandom(MAX_SHIELD/2));
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_SHIELDS");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_SHIELDS);
 				break;
 			case 6:
 				/* -- Put 'em on ICE */
 				sound->PlaySound(gFreezeSound, 4);
 				gFreezeTime = FREEZE_DURATION;
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_FREEZING");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_FREEZING);
 				break;
 			case 7:
 				/* Blow up everything */
@@ -96,6 +103,7 @@ class Prize : public Object {
 				}
 				gShakeTime = SHAKE_DURATION;
 				UnlockSinglePlayerAchievement("ACHIEVEMENT_PRIZE_EXPLOSION");
+				AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_PRIZE_EXPLOSION);
 				break;
 		}
 		sound->PlaySound(gGotPrize, 4);
@@ -255,6 +263,7 @@ class DamagedShip : public Object {
 			ship->IncrLives(1);
 			sound->PlaySound(gSavedShipSound, 4);
 			UnlockSinglePlayerAchievement("ACHIEVEMENT_GOOD_SAMARITAN");
+			AddSteamTimelineEvent(STEAM_TIMELINE_EVENT_FREE_LIFE);
 		}
 		return(1);
 	}
diff --git a/game/steam.cpp b/game/steam.cpp
index e297fff0..0f98c8de 100644
--- a/game/steam.cpp
+++ b/game/steam.cpp
@@ -254,6 +254,42 @@ void SteamInterface::AddSteamTimelineEvent(STEAM_TIMELINE_EVENT event)
 		title = "Nova";
 		icon = "steam_explosion";
 		break;
+	case STEAM_TIMELINE_EVENT_FREE_LIFE:
+		title = "Free Life";
+		icon = "steam_heart";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_MACHINE_GUNS:
+		title = "Machine Guns";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_AIR_BRAKES:
+		title = "Air Brakes";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_LUCK:
+		title = "Luck";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_TRIPLE_FIRE:
+		title = "Triple Fire";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_LONG_RANGE:
+		title = "Long Range";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_SHIELDS:
+		title = "Shields";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_FREEZING:
+		title = "Freezing";
+		icon = "steam_chest";
+		break;
+	case STEAM_TIMELINE_EVENT_PRIZE_EXPLOSION:
+		title = "Explosion";
+		icon = "steam_chest";
+		break;
 	default:
 		break;
 	}
diff --git a/game/steam.h b/game/steam.h
index c93497ce..061669fa 100644
--- a/game/steam.h
+++ b/game/steam.h
@@ -42,6 +42,15 @@ enum STEAM_TIMELINE_EVENT
 	STEAM_TIMELINE_EVENT_MINE,
 	STEAM_TIMELINE_EVENT_GRAVITY,
 	STEAM_TIMELINE_EVENT_NOVA,
+	STEAM_TIMELINE_EVENT_FREE_LIFE,
+	STEAM_TIMELINE_EVENT_PRIZE_MACHINE_GUNS,
+	STEAM_TIMELINE_EVENT_PRIZE_AIR_BRAKES,
+	STEAM_TIMELINE_EVENT_PRIZE_LUCK,
+	STEAM_TIMELINE_EVENT_PRIZE_TRIPLE_FIRE,
+	STEAM_TIMELINE_EVENT_PRIZE_LONG_RANGE,
+	STEAM_TIMELINE_EVENT_PRIZE_SHIELDS,
+	STEAM_TIMELINE_EVENT_PRIZE_FREEZING,
+	STEAM_TIMELINE_EVENT_PRIZE_EXPLOSION,
 };
 
 typedef Uint32 RemotePlaySessionID_t;