Revisión | 3d2e9c004bfbd95c6d7d2be41dbf9c526ac525e2 (tree) |
---|---|
Tiempo | 2022-09-22 22:00:48 |
Autor | Adam Kaminski <kaminskiadam9@gmai...> |
Commiter | Adam Kaminski |
Added a "WelcomeSound" property to the GAMEMODE lump, which determines what announcer sound to play at the start of a level.
@@ -1785,19 +1785,13 @@ | ||
1785 | 1785 | // Tick the medal system. |
1786 | 1786 | MEDAL_Tick( ); |
1787 | 1787 | |
1788 | - // Play "Welcome" sounds for teamgame modes. | |
1789 | - if ( g_ulLevelIntroTicks < TICRATE ) | |
1788 | + // [AK] Play "welcome" sounds for any game modes that have defined one. | |
1789 | + if (( g_ulLevelIntroTicks < TICRATE ) && ( ++g_ulLevelIntroTicks == TICRATE )) | |
1790 | 1790 | { |
1791 | - g_ulLevelIntroTicks++; | |
1792 | - if ( g_ulLevelIntroTicks == TICRATE ) | |
1793 | - { | |
1794 | - if ( oneflagctf ) | |
1795 | - ANNOUNCER_PlayEntry( cl_announcer, "WelcomeToOneFlagCTF" ); | |
1796 | - else if ( ctf ) | |
1797 | - ANNOUNCER_PlayEntry( cl_announcer, "WelcomeToCTF" ); | |
1798 | - else if ( skulltag ) | |
1799 | - ANNOUNCER_PlayEntry( cl_announcer, "WelcomeToST" ); | |
1800 | - } | |
1791 | + const char *pszWelcomeSound = GAMEMODE_GetWelcomeSound( GAMEMODE_GetCurrentMode( )); | |
1792 | + | |
1793 | + if ( pszWelcomeSound != NULL ) | |
1794 | + ANNOUNCER_PlayEntry( cl_announcer, pszWelcomeSound ); | |
1801 | 1795 | } |
1802 | 1796 | |
1803 | 1797 | // Apply end level delay. |
@@ -196,6 +196,11 @@ | ||
196 | 196 | // [AK] The F1 texture cannot exceed more than 8 characters. |
197 | 197 | g_GameModes[GameMode].F1Texture.Truncate( 8 ); |
198 | 198 | } |
199 | + else if (0 == stricmp (sc.String, "welcomesound")) | |
200 | + { | |
201 | + sc.MustGetString(); | |
202 | + g_GameModes[GameMode].WelcomeSound = sc.String; | |
203 | + } | |
199 | 204 | else if ((0 == stricmp (sc.String, "gamesettings")) || (0 == stricmp (sc.String, "lockedgamesettings"))) |
200 | 205 | { |
201 | 206 | GAMEMODE_ParseGameSettingBlock( sc, GameMode, !stricmp( sc.String, "lockedgamesettings" )); |
@@ -423,6 +428,16 @@ | ||
423 | 428 | |
424 | 429 | //***************************************************************************** |
425 | 430 | // |
431 | +const char *GAMEMODE_GetWelcomeSound( GAMEMODE_e GameMode ) | |
432 | +{ | |
433 | + if ( GameMode >= NUM_GAMEMODES ) | |
434 | + return ( NULL ); | |
435 | + | |
436 | + return ( g_GameModes[GameMode].WelcomeSound.GetChars( )); | |
437 | +} | |
438 | + | |
439 | +//***************************************************************************** | |
440 | +// | |
426 | 441 | int GAMEMODE_GetFlagsetMask( GAMEMODE_e GameMode, FIntCVar *Flagset, bool bLocked ) |
427 | 442 | { |
428 | 443 | ULONG ulMask = bLocked ? FLAGSET_LOCKEDMASK : FLAGSET_MASK; |
@@ -166,6 +166,9 @@ | ||
166 | 166 | // this game mode. |
167 | 167 | FString F1Texture; |
168 | 168 | |
169 | + // [AK] The announcer sound (e.g. "welcome to...") that plays at the start of a level. | |
170 | + FString WelcomeSound; | |
171 | + | |
169 | 172 | // [AK] All of the gameplay or compatibility flags we set for this game mode |
170 | 173 | // (dmflags, compatflags, lmsallowedweapons, lmsspectatorsettings, etc.). |
171 | 174 | LONG lFlagsets[NUM_FLAGSETS][3]; |
@@ -185,6 +188,7 @@ | ||
185 | 188 | const char *GAMEMODE_GetName( GAMEMODE_e GameMode ); |
186 | 189 | const char *GAMEMODE_GetCurrentName( void ); |
187 | 190 | const char *GAMEMODE_GetF1Texture( GAMEMODE_e GameMode ); |
191 | +const char *GAMEMODE_GetWelcomeSound( GAMEMODE_e GameMode ); | |
188 | 192 | int GAMEMODE_GetFlagsetMask( GAMEMODE_e GameMode, FIntCVar *Flagset, bool bLocked = false ); |
189 | 193 | int GAMEMODE_GetCurrentFlagsetMask( FIntCVar *Flagset, bool bLocked = false ); |
190 | 194 | void GAMEMODE_DetermineGameMode( void ); |
@@ -173,6 +173,7 @@ | ||
173 | 173 | Name "Capture the Flag" |
174 | 174 | ShortName "CTF" |
175 | 175 | F1Texture "F1_CTF" |
176 | + WelcomeSound "WelcomeToCTF" | |
176 | 177 | } |
177 | 178 | |
178 | 179 | // One flag CTF |
@@ -187,6 +188,7 @@ | ||
187 | 188 | Name "1-Flag CTF" |
188 | 189 | ShortName "1F-CTF" |
189 | 190 | F1Texture "F1_1FCTF" |
191 | + WelcomeSound "WelcomeToOneFlagCTF" | |
190 | 192 | } |
191 | 193 | |
192 | 194 | // Skulltag |
@@ -200,6 +202,7 @@ | ||
200 | 202 | Name "Skulltag" |
201 | 203 | ShortName "ST" |
202 | 204 | F1Texture "F1_ST" |
205 | + WelcomeSound "WelcomeToST" | |
203 | 206 | } |
204 | 207 | |
205 | 208 | // Domination |