From 3b8ba34ecf91aa52114a075ae1aa66cd161c6a70 Mon Sep 17 00:00:00 2001 From: Wanne Date: Wed, 4 Sep 2013 16:54:27 +0000 Subject: [PATCH] - Bugfix: Only init the profile xml filenames, if exist o This fixes the crash when starting a "Vanilla" game (Vanilla 1.13 does not have any profile xml filenames) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6356 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Init.cpp | 54 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/Init.cpp b/Init.cpp index 6384b0b5..b21ac62f 100644 --- a/Init.cpp +++ b/Init.cpp @@ -1024,39 +1024,57 @@ BOOLEAN LoadExternalGameplayData(STR directoryName) { strcpy(fileName, directoryName); strcat(fileName, ENEMY_ADMIN_PROFILE_FILENAME); - DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); - SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[0], fileName), ENEMY_ADMIN_PROFILE_FILENAME); - num_found_soldier_profiles[0] = num_found_profiles; + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[0], fileName), ENEMY_ADMIN_PROFILE_FILENAME); + num_found_soldier_profiles[0] = num_found_profiles; + } strcpy(fileName, directoryName); strcat(fileName, ENEMY_REGULAR_PROFILE_FILENAME); - DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); - SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[1], fileName), ENEMY_REGULAR_PROFILE_FILENAME); - num_found_soldier_profiles[1] = num_found_profiles; + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[1], fileName), ENEMY_REGULAR_PROFILE_FILENAME); + num_found_soldier_profiles[1] = num_found_profiles; + } strcpy(fileName, directoryName); strcat(fileName, ENEMY_ELITE_PROFILE_FILENAME); - DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); - SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[2], fileName), ENEMY_ELITE_PROFILE_FILENAME); - num_found_soldier_profiles[2] = num_found_profiles; + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[2], fileName), ENEMY_ELITE_PROFILE_FILENAME); + num_found_soldier_profiles[2] = num_found_profiles; + } strcpy(fileName, directoryName); strcat(fileName, MILITIA_GREEN_PROFILE_FILENAME); - DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); - SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[3], fileName), MILITIA_GREEN_PROFILE_FILENAME); - num_found_soldier_profiles[3] = num_found_profiles; + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[3], fileName), MILITIA_GREEN_PROFILE_FILENAME); + num_found_soldier_profiles[3] = num_found_profiles; + } strcpy(fileName, directoryName); strcat(fileName, MILITIA_REGULAR_PROFILE_FILENAME); - DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); - SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[4], fileName), MILITIA_REGULAR_PROFILE_FILENAME); - num_found_soldier_profiles[4] = num_found_profiles; + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[4], fileName), MILITIA_REGULAR_PROFILE_FILENAME); + num_found_soldier_profiles[4] = num_found_profiles; + } strcpy(fileName, directoryName); strcat(fileName, MILITIA_VETERAN_PROFILE_FILENAME); - DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); - SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[5], fileName), MILITIA_VETERAN_PROFILE_FILENAME); - num_found_soldier_profiles[5] = num_found_profiles; + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInSoldierProfiles(zSoldierProfile[5], fileName), MILITIA_VETERAN_PROFILE_FILENAME); + num_found_soldier_profiles[5] = num_found_profiles; + } } LoadIMPPortraitsTEMP();