Torr_Samaho avatar Torr_Samaho committed 5813af5

Fixed: After a map reset in terminator/possession/teampossession (possibly with the new ACS command ResetMap in combination with the GAMEMODE lump), the terminator sphere/hellstone wasn't respawned.

Comments (0)

Files changed (4)

 		}
 	}
 
+	// [BB] Restore the special gamemode actors that were not spawned by the map, e.g. terminator sphere or hellstone.
+	GAMEMODE_SpawnSpecialGamemodeThings();
+
 	// If we're the server, tell clients the new number of total items/monsters.
 	if ( NETWORK_GetState( ) == NETSTATE_SERVER )
 	{
 
 	C_FlushDisplay ();
 
-	// [BC] Spawn various necessary game objects at the start of the map.
-	if (( NETWORK_GetState( ) != NETSTATE_CLIENT ) &&
-		( CLIENTDEMO_IsPlaying( ) == false ))
-	{
-		// Spawn the terminator artifact in terminator mode.
-		if ( terminator )
-			GAME_SpawnTerminatorArtifact( );
-
-		// Spawn the possession artifact in possession/team possession mode.
-		if ( possession || teampossession )
-			GAME_SpawnPossessionArtifact( );
-	}
+	// [BC/BB] Spawn various necessary game objects at the start of the map.
+	GAMEMODE_SpawnSpecialGamemodeThings();
 
 	// [BC] If we're the server, potentially check if we should use some campaign settings
 	// for this map.
 
 //*****************************************************************************
 //
+void GAMEMODE_SpawnSpecialGamemodeThings ( void )
+{
+	// [BB] The server will let the clients know of any necessary spawns.
+	if ( NETWORK_InClientMode( ) == false )
+	{
+		// Spawn the terminator artifact in terminator mode.
+		if ( terminator )
+			GAME_SpawnTerminatorArtifact( );
+
+		// Spawn the possession artifact in possession/team possession mode.
+		if ( possession || teampossession )
+			GAME_SpawnPossessionArtifact( );
+	}
+}
+
+//*****************************************************************************
+//
 void GAMEMODE_DisplayStandardMessage( const char *pszMessage, const bool bInformClients )
 {
 	if ( NETWORK_GetState( ) != NETSTATE_SERVER )
 bool		GAMEMODE_AreLivesLimited( void );
 unsigned int	GAMEMODE_GetMaxLives( void );
 void		GAMEMODE_AdjustActorSpawnFlags ( AActor *pActor );
+void		GAMEMODE_SpawnSpecialGamemodeThings ( void );
 
 // [BB] This function doesn't really belong here. Find a better place for it.
 void		GAMEMODE_DisplayStandardMessage( const char *pszMessage, const bool bInformClients = false );
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.