From eb8b428d0f70d4de639e291829ee5ff6aa7cfdf6 Mon Sep 17 00:00:00 2001 From: sukibaby <163092272+sukibaby@users.noreply.github.com> Date: Tue, 7 May 2024 04:33:54 -0700 Subject: [PATCH] Use range-based for loops in ScreenManager.cpp Modernizing some of the old code - improve reliability by replacing traditional iterator loops where they are not needed. Update ScreenManager.cpp --- src/ScreenManager.cpp | 76 +++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/src/ScreenManager.cpp b/src/ScreenManager.cpp index a5c6d919a4..763de550e2 100644 --- a/src/ScreenManager.cpp +++ b/src/ScreenManager.cpp @@ -262,23 +262,25 @@ ScreenManager::ScreenManager() ScreenManager::~ScreenManager() { - LOG->Trace( "ScreenManager::~ScreenManager()" ); - LOG->UnmapLog( "ScreenManager::TopScreen" ); + LOG->Trace("ScreenManager::~ScreenManager()"); + LOG->UnmapLog("ScreenManager::TopScreen"); - SAFE_DELETE( g_pSharedBGA ); - for( unsigned i=0; iUnsetGlobal( "SCREENMAN" ); + LUA->UnsetGlobal("SCREENMAN"); } // This is called when we start up, and when the theme changes or is reloaded. @@ -306,22 +308,22 @@ void ScreenManager::ThemeChanged() void ScreenManager::ReloadOverlayScreens() { // unload overlay screens - for( unsigned i=0; iGetMetric( "Common","OverlayScreens" ); + RString sOverlays = THEME->GetMetric("Common", "OverlayScreens"); std::vector asOverlays; - split( sOverlays, ",", asOverlays ); - for( unsigned i=0; iGetName() ); + LuaThreadVariable var2("LoadingScreen", pScreen->GetName()); pScreen->BeginScreen(); - g_OverlayScreens.push_back( pScreen ); + g_OverlayScreens.push_back(pScreen); } } @@ -459,23 +461,21 @@ void ScreenManager::Update( float fDeltaTime ) /* Loading a new screen can take seconds and cause a big jump on the new * Screen's first update. Clamp the first update delta so that the * animations don't jump. */ - if( pScreen && m_bZeroNextUpdate ) + if (pScreen && m_bZeroNextUpdate) { - LOG->Trace( "Zeroing this update. Was %f", fDeltaTime ); + LOG->Trace("Zeroing this update. Was %f", fDeltaTime); fDeltaTime = 0; m_bZeroNextUpdate = false; } // Update screens. - { - for( unsigned i=0; iUpdate( fDeltaTime ); + for (const LoadedScreen& screen : g_ScreenStack) + screen.m_pScreen->Update(fDeltaTime); - g_pSharedBGA->Update( fDeltaTime ); + g_pSharedBGA->Update(fDeltaTime); - for( unsigned i=0; iUpdate( fDeltaTime ); - } + for (Screen* overlay : g_OverlayScreens) + overlay->Update(fDeltaTime); /* The music may be started on the first update. If we're reading from a CD, * it might not start immediately. Make sure we start playing the sound before @@ -509,12 +509,11 @@ void ScreenManager::Draw() g_pSharedBGA->Draw(); DISPLAY->CameraPopMatrix(); - for( unsigned i=0; iDraw(); - - for( unsigned i=0; iDraw(); + for (const LoadedScreen& screen : g_ScreenStack) // Draw all screens bottom to top + screen.m_pScreen->Draw(); + for (Screen* overlayScreen : g_OverlayScreens) + overlayScreen->Draw(); DISPLAY->EndFrame(); } @@ -527,19 +526,18 @@ void ScreenManager::Input( const InputEventPlus &input ) // First, give overlay screens a shot at the input. If Input returns // true, it handled the input, so don't pass it further. - for( unsigned i = 0; i < g_OverlayScreens.size(); ++i ) + for (Screen* pScreen : g_OverlayScreens) { - Screen *pScreen = g_OverlayScreens[i]; - bool handled= pScreen->Input(input); - // Pass input to the screen and lua. Contention shouldn't be a problem + bool handled = pScreen->Input(input); + // Pass input to the screen and lua. Contention shouldn't be a problem // because anybody setting an input callback is probably doing it to // do something in addition to whatever the screen does. - if(pScreen->PassInputToLua(input) || handled) + if (pScreen->PassInputToLua(input) || handled) { - if(m_bReloadOverlayScreensAfterInput) + if (m_bReloadOverlayScreensAfterInput) { ReloadOverlayScreens(); - m_bReloadOverlayScreensAfterInput= false; + m_bReloadOverlayScreensAfterInput = false; } return; }