From aa99eb803b26bfc2e6af5452fdab49b4b1b9536a Mon Sep 17 00:00:00 2001 From: Kyle Sanderson Date: Thu, 2 Apr 2015 13:50:47 -0700 Subject: [PATCH] Allow GetMapHistorySize to return numbers greater than 20. --- core/NextMap.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/NextMap.cpp b/core/NextMap.cpp index 126f8f666..e470f0842 100644 --- a/core/NextMap.cpp +++ b/core/NextMap.cpp @@ -64,6 +64,7 @@ extern bool __SourceHook_FHRemoveConCommandDispatch(void *,bool,class fastdelega ConCommand *changeLevelCmd = NULL; ConVar sm_nextmap("sm_nextmap", "", FCVAR_NOTIFY); +ConVar sm_maphistory_size("sm_maphistory_size", "20"); bool g_forcedChange = false; @@ -172,15 +173,18 @@ void NextMapManager::OnSourceModLevelChange( const char *mapName ) m_mapHistory.push_back(new MapChangeData(lastMap, newReason, m_tempChangeInfo.startTime)); } - /* TODO: Should this be customizable? */ - if (m_mapHistory.size() > 20) + int historydiff = sm_maphistory_size.GetInt(); + if (historydiff > 0) { - SourceHook::List::iterator iter; - iter = m_mapHistory.begin(); + historydiff -= m_mapHistory.size(); + } else if (historydiff < 0) + { + historydiff = (m_mapHistory.size() * -1); + } + for (SourceHook::List::iterator iter = m_mapHistory.begin(); historydiff++ < 0; iter = m_mapHistory.erase(iter)) + { delete (MapChangeData *)*iter; - - m_mapHistory.erase(iter); } }