From 5bc4bc90bb1900e6961415b1c0330c4be3bba079 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 2 Dec 2010 13:57:05 +0000 Subject: [PATCH] - fixed: A new episode definition for a map that already had one defined did not replace the old definition. - fixed: Skipping the skill menu did not work because it checked the number of episodes, not skills. SVN r3017 (trunk) --- src/g_mapinfo.cpp | 8 +++++++- src/menu/menudef.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/g_mapinfo.cpp b/src/g_mapinfo.cpp index 84b6aa48f..adf0b2cd0 100644 --- a/src/g_mapinfo.cpp +++ b/src/g_mapinfo.cpp @@ -1626,7 +1626,13 @@ void FMapInfoParser::ParseEpisodeInfo () } else { - FEpisode *epi = &AllEpisodes[AllEpisodes.Reserve(1)]; + // Only allocate a new entry if this doesn't replace an existing episode. + if (i >= AllEpisodes.Size()) + { + i = AllEpisodes.Reserve(1); + } + + FEpisode *epi = &AllEpisodes[i]; epi->mEpisodeMap = map; epi->mEpisodeName = name; diff --git a/src/menu/menudef.cpp b/src/menu/menudef.cpp index a751caf5c..79ae99a23 100644 --- a/src/menu/menudef.cpp +++ b/src/menu/menudef.cpp @@ -1327,7 +1327,7 @@ void M_StartupSkillMenu(FGameStartup *gs) } if (AllEpisodes[gs->Episode].mNoSkill || AllSkills.Size() == 1) { - ld->mAutoselect = firstitem + MIN(2u, AllEpisodes.Size()-1); + ld->mAutoselect = firstitem + MIN(2u, AllSkills.Size()-1); } else {