#include "global.h" /* ----------------------------------------------------------------------------- Class: ScreenBackgroundOptions Desc: See header. Copyright (c) 2001-2003 by the person(s) listed below. All rights reserved. Chris Danford Chris Gomez ----------------------------------------------------------------------------- */ #include "ScreenBackgroundOptions.h" #include "RageUtil.h" #include "RageSounds.h" #include "ScreenManager.h" #include "PrefsManager.h" #include "GameConstantsAndTypes.h" #include "StepMania.h" #include "PrefsManager.h" #include "RageLog.h" #include "ThemeManager.h" enum { BO_MODE, BO_BRIGHTNESS, BO_DANGER, BO_DANCING_CHARACTERS, BO_SHOW_BEGINNER_HELPER, BO_RANDOM_BACKGROUNDS, NUM_BACKGROUND_OPTIONS_LINES }; OptionRow g_BackgroundOptionsLines[NUM_BACKGROUND_OPTIONS_LINES] = { OptionRow( "Mode", true, "OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES" ), OptionRow( "Brightness", true, "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%" ), OptionRow( "Danger", true, "HIDE","SHOW" ), OptionRow( "Dancing\nCharacters", true, "DEFAULT TO OFF","DEFAULT TO RANDOM","SELECT" ), OptionRow( "Show Beginner\nHelper", true, "OFF","ON" ), OptionRow( "Random\nBackgrounds", true, "5","10","15","20" ), }; ScreenBackgroundOptions::ScreenBackgroundOptions() : ScreenOptions("ScreenBackgroundOptions",false) { LOG->Trace( "ScreenBackgroundOptions::ScreenBackgroundOptions()" ); Init( INPUTMODE_TOGETHER, g_BackgroundOptionsLines, NUM_BACKGROUND_OPTIONS_LINES, true ); m_Menu.m_MenuTimer.Disable(); SOUND->PlayMusic( THEME->GetPathToS("ScreenMachineOptions music") ); } void ScreenBackgroundOptions::ImportOptions() { m_iSelectedOption[0][BO_MODE] = PREFSMAN->m_BackgroundMode; m_iSelectedOption[0][BO_BRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f ); m_iSelectedOption[0][BO_DANGER] = PREFSMAN->m_bShowDanger ? 1:0; m_iSelectedOption[0][BO_DANCING_CHARACTERS] = PREFSMAN->m_ShowDancingCharacters; m_iSelectedOption[0][BO_SHOW_BEGINNER_HELPER] = PREFSMAN->m_bShowBeginnerHelper? 1:0; m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS] = clamp((PREFSMAN->m_iNumBackgrounds/5)-1, 0, 3); } void ScreenBackgroundOptions::ExportOptions() { (int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][BO_MODE]; PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][BO_BRIGHTNESS] / 10.0f; PREFSMAN->m_bShowDanger = m_iSelectedOption[0][BO_DANGER] == 1; PREFSMAN->m_ShowDancingCharacters = (PrefsManager::CharacterOption)m_iSelectedOption[0][BO_DANCING_CHARACTERS]; PREFSMAN->m_bShowBeginnerHelper = m_iSelectedOption[0][BO_SHOW_BEGINNER_HELPER] == 1; PREFSMAN->m_iNumBackgrounds = (m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS]+1) * 5; } void ScreenBackgroundOptions::GoToPrevState() { SCREENMAN->SetNewScreen( "ScreenOptionsMenu" ); } void ScreenBackgroundOptions::GoToNextState() { PREFSMAN->SaveGlobalPrefsToDisk(); GoToPrevState(); }