From 69aeea0679a58311cbb3fd57a29deb7c0bf32d32 Mon Sep 17 00:00:00 2001 From: Flugente Date: Thu, 19 Jul 2018 21:42:07 +0000 Subject: [PATCH] New Feature: mp3 audio format is now supported in addition to .wav and .ogg git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8579 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Laptop/IMP Voices.cpp | 8 +++- Tactical/Dialogue Control.cpp | 77 ++++++++++++++++++++++++++--------- Tactical/Soldier Control.cpp | 67 +++++++++++++++++++++++++----- Utils/Music Control.cpp | 64 +++++++++++------------------ 4 files changed, 144 insertions(+), 72 deletions(-) diff --git a/Laptop/IMP Voices.cpp b/Laptop/IMP Voices.cpp index 67de2bdd..8423d5d3 100644 --- a/Laptop/IMP Voices.cpp +++ b/Laptop/IMP Voices.cpp @@ -349,10 +349,14 @@ UINT32 PlayVoice( void ) UINT16 iSlot = gIMPVoice[iCurrentVoice].voiceset; Assert( (iSlot >= 0) && (iSlot <= 999) ); - sprintf( zFileName, "Speech\\%03d_001.ogg", iSlot ); + sprintf( zFileName, "Speech\\%03d_001.mp3", iSlot ); if ( !FileExists( zFileName ) ) { - sprintf( zFileName, "Speech\\%03d_001.wav", iSlot ); + sprintf( zFileName, "Speech\\%03d_001.ogg", iSlot ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "Speech\\%03d_001.wav", iSlot ); + } } return(PlayJA2SampleFromFile( zFileName, RATE_11025, MIDVOLUME, 1, MIDDLEPAN )); diff --git a/Tactical/Dialogue Control.cpp b/Tactical/Dialogue Control.cpp index ffe79500..924b6ade 100644 --- a/Tactical/Dialogue Control.cpp +++ b/Tactical/Dialogue Control.cpp @@ -2342,7 +2342,11 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN sprintf( zFileName, "NPC_SPEECH\\d_%03d_%03d.ogg", usVoiceSet, usQuoteNum ); if ( !FileExists( zFileName ) ) { - sprintf( zFileName, "NPC_SPEECH\\d_%03d_%03d.wav", usVoiceSet, usQuoteNum ); + sprintf( zFileName, "NPC_SPEECH\\d_%03d_%03d.mp3", usVoiceSet, usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "NPC_SPEECH\\d_%03d_%03d.wav", usVoiceSet, usQuoteNum ); + } } } // #endif @@ -2484,19 +2488,31 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN { // Lesh: patch to allow playback ogg speech files sprintf( zFileName,"NPC_SPEECH\\%03d_%03d.ogg",ubFileNumID,usQuoteNum ); + + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "NPC_SPEECH\\%03d_%03d.mp3", ubFileNumID, usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "NPC_SPEECH\\%03d_%03d.wav", ubFileNumID, usQuoteNum ); + } + } // WANNE: We do not have any speech files for the other (!= HERVE) santos bartenders, take HERVE speech files if (isBartenderSantos && HERVE != ubFileNumID && !FileExists(zFileName)) { ubFileNumID = HERVE; sprintf( zFileName,"NPC_SPEECH\\%03d_%03d.ogg",ubFileNumID,usQuoteNum ); - } - // We do not have *.ogg file, take *.WAV file - if ( !FileExists( zFileName ) ) - { - sprintf( zFileName,"NPC_SPEECH\\%03d_%03d.wav",ubFileNumID,usQuoteNum ); - } + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "NPC_SPEECH\\%03d_%03d.mp3", ubFileNumID, usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "NPC_SPEECH\\%03d_%03d.wav", ubFileNumID, usQuoteNum ); + } + } + } } } else @@ -2523,28 +2539,33 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN //inshy: fix for UB-1.13 version only sprintf( zFileName,"SPEECH\\r_%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); if ( gSoundProfileValue[ubCharacterNum].EnabledSound == TRUE ) { - #ifdef JA2UB +#ifdef JA2UB sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",usVoiceSet,usQuoteNum ); if ( !FileExists( zFileName ) ) { sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",usVoiceSet,usQuoteNum ); } - #else +#else sprintf( zFileName,"SPEECH\\r_%03d_%03d.ogg",usVoiceSet,usQuoteNum ); - #endif +#endif if ( !FileExists( zFileName ) ) { //inshy: fix for UB-1.13 version only - #ifdef JA2UB +#ifdef JA2UB sprintf( zFileName,"SPEECH\\%03d_%03d.wav",usVoiceSet,usQuoteNum ); if ( !FileExists( zFileName ) ) { - sprintf( zFileName,"SPEECH\\%03d_%03d.wav",usVoiceSet,usQuoteNum ); - } - #else - sprintf( zFileName,"SPEECH\\r_%03d_%03d.wav",usVoiceSet,usQuoteNum ); - #endif + sprintf( zFileName,"SPEECH\\%03d_%03d.mp3",usVoiceSet,usQuoteNum ); + } +#else + sprintf( zFileName,"SPEECH\\r_%03d_%03d.wav",usVoiceSet,usQuoteNum ); + + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "SPEECH\\r_%03d_%03d.mp3", usVoiceSet, usQuoteNum ); + } +#endif // Also check for Russian Gold sound files (identical to international ones) if(! FileExists( zFileName ) ) @@ -2552,7 +2573,11 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",usVoiceSet,usQuoteNum ); if ( !FileExists( zFileName ) ) { - sprintf( zFileName,"SPEECH\\%03d_%03d.wav",usVoiceSet,usQuoteNum ); + sprintf( zFileName,"SPEECH\\%03d_%03d.mp3",usVoiceSet,usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "SPEECH\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + } } } // @@ -2569,7 +2594,11 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN if ( !FileExists( zFileName ) ) { - sprintf( zFileName, "SPEECH\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + sprintf( zFileName, "SPEECH\\%03d_%03d.mp3", usVoiceSet, usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "SPEECH\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + } } } } @@ -2602,7 +2631,11 @@ CHAR8 *GetSnitchDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, B sprintf( zFileName, "SPEECH\\SNITCH\\NAMES\\%03d_%03d.ogg", usVoiceSet, usQuoteNum ); if ( !FileExists( zFileName ) ) { - sprintf( zFileName, "SPEECH\\SNITCH\\NAMES\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + sprintf( zFileName, "SPEECH\\SNITCH\\NAMES\\%03d_%03d.mp3", usVoiceSet, usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "SPEECH\\SNITCH\\NAMES\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + } } } else @@ -2610,7 +2643,11 @@ CHAR8 *GetSnitchDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, B sprintf( zFileName, "SPEECH\\SNITCH\\%03d_%03d.ogg", usVoiceSet, usQuoteNum ); if ( !FileExists( zFileName ) ) { - sprintf( zFileName, "SPEECH\\SNITCH\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + sprintf( zFileName, "SPEECH\\SNITCH\\%03d_%03d.mp3", usVoiceSet, usQuoteNum ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "SPEECH\\SNITCH\\%03d_%03d.wav", usVoiceSet, usQuoteNum ); + } } } } diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 6b7825e6..86251246 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -10900,7 +10900,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.wav", usVoiceSet, gBattleSndsData[ubSoundID].zName, numsounds + 1 ); + sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.mp3", usVoiceSet, gBattleSndsData[ubSoundID].zName, numsounds + 1 ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.wav", usVoiceSet, gBattleSndsData[ubSoundID].zName, numsounds + 1 ); + } } if ( FileExists( zFilename ) ) @@ -10920,7 +10924,12 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.ogg", usVoiceSet, gBattleSndsData[ubSoundID].zName, soundtoplay ); if ( !FileExists( zFilename ) ) - sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.wav", usVoiceSet, gBattleSndsData[ubSoundID].zName, soundtoplay ); + { + sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.mp3", usVoiceSet, gBattleSndsData[ubSoundID].zName, soundtoplay ); + + if ( !FileExists( zFilename ) ) + sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.wav", usVoiceSet, gBattleSndsData[ubSoundID].zName, soundtoplay ); + } } else { @@ -10935,6 +10944,12 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe if ( !FileExists( zFilename ) ) sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.wav", usVoiceSet, gBattleSndsData[ubSoundID].zName, 1 ); + + if ( !FileExists( zFilename ) ) + sprintf( zFilename, "BATTLESNDS\\%03d_%s.mp3", usVoiceSet, gBattleSndsData[ubSoundID].zName ); + + if ( !FileExists( zFilename ) ) + sprintf( zFilename, "BATTLESNDS\\%03d_%s%d.mp3", usVoiceSet, gBattleSndsData[ubSoundID].zName, 1 ); } if ( !FileExists( zFilename ) ) @@ -10945,7 +10960,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\f_%s.ogg", gBattleSndsData[ubSoundID].zName ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\f_%s.wav", gBattleSndsData[ubSoundID].zName ); + sprintf( zFilename, "BATTLESNDS\\f_%s.mp3", gBattleSndsData[ubSoundID].zName ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\f_%s.wav", gBattleSndsData[ubSoundID].zName ); + } } } else @@ -10953,7 +10972,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\m_%s.ogg", gBattleSndsData[ubSoundID].zName ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\m_%s.wav", gBattleSndsData[ubSoundID].zName ); + sprintf( zFilename, "BATTLESNDS\\m_%s.mp3", gBattleSndsData[ubSoundID].zName ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\m_%s.wav", gBattleSndsData[ubSoundID].zName ); + } } } } @@ -10973,7 +10996,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\kid%d_dying.ogg", pSoldier->ubBattleSoundID ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\kid%d_dying.wav", pSoldier->ubBattleSoundID ); + sprintf( zFilename, "BATTLESNDS\\kid%d_dying.mp3", pSoldier->ubBattleSoundID ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\kid%d_dying.wav", pSoldier->ubBattleSoundID ); + } } } else @@ -10981,7 +11008,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\kid%d_%s.ogg", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\kid%d_%s.wav", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); + sprintf( zFilename, "BATTLESNDS\\kid%d_%s.mp3", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\kid%d_%s.wav", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); + } } } } @@ -10992,7 +11023,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\zombie_die.ogg" ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\zombie_die.wav" ); + sprintf( zFilename, "BATTLESNDS\\zombie_die.mp3" ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\zombie_die.wav" ); + } } } else @@ -11000,7 +11035,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\zombie_%s.ogg", gBattleSndsData[ubSoundID].zName ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\zombie_%s.wav", gBattleSndsData[ubSoundID].zName ); + sprintf( zFilename, "BATTLESNDS\\zombie_%s.mp3", gBattleSndsData[ubSoundID].zName ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\zombie_%s.wav", gBattleSndsData[ubSoundID].zName ); + } } } } @@ -11011,7 +11050,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\bad%d_die.ogg", pSoldier->ubBattleSoundID ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\bad%d_die.wav", pSoldier->ubBattleSoundID ); + sprintf( zFilename, "BATTLESNDS\\bad%d_die.mp3", pSoldier->ubBattleSoundID ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\bad%d_die.wav", pSoldier->ubBattleSoundID ); + } } } else @@ -11019,7 +11062,11 @@ BOOLEAN SOLDIERTYPE::InternalDoMercBattleSound( UINT8 ubBattleSoundID, INT8 bSpe sprintf( zFilename, "BATTLESNDS\\bad%d_%s.ogg", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); if ( !FileExists( zFilename ) ) { - sprintf( zFilename, "BATTLESNDS\\bad%d_%s.wav", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); + sprintf( zFilename, "BATTLESNDS\\bad%d_%s.mp3", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); + if ( !FileExists( zFilename ) ) + { + sprintf( zFilename, "BATTLESNDS\\bad%d_%s.wav", pSoldier->ubBattleSoundID, gBattleSndsData[ubSoundID].zName ); + } } } } diff --git a/Utils/Music Control.cpp b/Utils/Music Control.cpp index 3a229eff..7b5efc9e 100644 --- a/Utils/Music Control.cpp +++ b/Utils/Music Control.cpp @@ -151,57 +151,41 @@ BOOLEAN MusicPlay(UINT32 uiNum) if ( NewSound == FALSE && MusicMode == MUSIC_OLD_TYPE ) { #endif - sprintf( zFileName, "%s.ogg", szMusicList[uiNum] ); + sprintf( zFileName, "%s.mp3", szMusicList[uiNum] ); if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s.wav", szMusicList[uiNum] ); + { + sprintf( zFileName, "%s.ogg", szMusicList[uiNum] ); + if ( !FileExists( zFileName ) ) + { + sprintf( zFileName, "%s.wav", szMusicList[uiNum] ); + } + } #ifdef NEWMUSIC } else if ( NewSound == TRUE ) { - //sprintf( zFileName, szMusicList[15] ); - if ( MusicMode == MUSIC_TACTICAL_NOTHING ) + CHAR8 modstr[32] = ""; + + switch ( MusicMode ) { - sprintf( zFileName, "%s\\NOTHING_%d.ogg", szMusicList[15], uiNum); - if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\NOTHING_%d.wav", szMusicList[15], uiNum ); + case MUSIC_TACTICAL_NOTHING: sprintf( modstr, "NOTHING_" ); break; + case MUSIC_TACTICAL_ENEMYPRESENT: sprintf( modstr, "TENSOR_" ); break; + case MUSIC_TACTICAL_BATTLE: sprintf( modstr, "BATTLE_" ); break; + case MUSIC_TACTICAL_VICTORY: sprintf( modstr, "TRIUMPH_" ); break; + case MUSIC_TACTICAL_BATTLE_MUSIC: sprintf( modstr, "CREATURE_BATTLE_" ); break; + case MUSIC_TACTICAL_CREEPY_MUSIC: sprintf( modstr, "CREEPY_" ); break; + default: break; } - else if ( MusicMode == MUSIC_TACTICAL_ENEMYPRESENT ) - { - sprintf( zFileName, "%s\\TENSOR_%d.ogg", szMusicList[15], uiNum); - if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\TENSOR_%d.wav", szMusicList[15], uiNum ); - } - else if ( MusicMode == MUSIC_TACTICAL_BATTLE ) - { - sprintf( zFileName, "%s\\BATTLE_%d.ogg", szMusicList[15], uiNum); - if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\BATTLE_%d.wav", szMusicList[15], uiNum ); - } - else if ( MusicMode == MUSIC_TACTICAL_VICTORY ) - { - sprintf( zFileName, "%s\\TRIUMPH_%d.ogg", szMusicList[15], uiNum); + + sprintf( zFileName, "%s\\%s%d.ogg", szMusicList[15], modstr, uiNum ); if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\TRIUMPH_%d.wav", szMusicList[15], uiNum ); - } - else if ( MusicMode == MUSIC_TACTICAL_BATTLE_MUSIC ) { - sprintf( zFileName, "%s\\CREATURE_BATTLE_%d.ogg", szMusicList[15], uiNum); + sprintf( zFileName, "%s\\%s%d.wav", szMusicList[15], modstr, uiNum ); if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\CREATURE_BATTLE_%d.wav", szMusicList[15], uiNum ); + { + sprintf( zFileName, "%s\\%s%d.mp3", szMusicList[15], modstr, uiNum ); + } } - else if ( MusicMode == MUSIC_TACTICAL_CREEPY_MUSIC ) - { - sprintf( zFileName, "%s\\CREEPY_%d.ogg", szMusicList[15], uiNum); - if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\CREEPY_%d.wav", szMusicList[15], uiNum ); - } - else if ( MusicMode == OTHER_MUSIC_TACTICAL ) - { - sprintf( zFileName, "%s\\%d.ogg", szMusicList[15], uiNum); - if ( !FileExists( zFileName ) ) - sprintf( zFileName, "%s\\%d.wav", szMusicList[15], uiNum ); - } - } #endif uiMusicHandle = SoundPlayStreamedFile(zFileName, &spParms);