Files
itgmania212121/stepmania/src/ScreenBackgroundOptions.cpp
T

90 lines
2.9 KiB
C++

#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();
}