more options re-org

This commit is contained in:
Chris Danford
2003-02-01 01:11:00 +00:00
parent e80943fb53
commit 6f445f700f
13 changed files with 170 additions and 66 deletions
+1
View File
@@ -13,6 +13,7 @@ NEW FEATURE: Jukebox mode. Like demonstration, but plays entire songs
and loops.
NEW FEATURE: F6 to save screenshot. Saved in StepMania program directory
as "screenshotXXXX.bmp".
CHANGE: Reorganization of options screens.
----------------------- Version 3.01 ---------------------------
CHANGE: Simplified NoteSkin tap graphic format. Old NoteSkins will need to
+1 -2
View File
@@ -873,6 +873,5 @@ Row7Y=340
InputOptions=
MachineOptions=
GraphicOptions=
GameplayOptions=
AppearanceOptions=
+2
View File
@@ -457,6 +457,8 @@ void RageDisplay::SaveScreenshot( CString sPath )
3*g_CurrentWidth );
SDL_SaveBMP( temp, sPath );
SDL_FreeSurface( image );
SDL_FreeSurface( temp );
}
+107
View File
@@ -0,0 +1,107 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenGameplayOptions
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenGameplayOptions.h"
#include "RageTextureManager.h"
#include "RageUtil.h"
#include "RageSoundManager.h"
#include "ScreenManager.h"
#include "PrefsManager.h"
#include "GameConstantsAndTypes.h"
#include "StepMania.h"
#include "PrefsManager.h"
#include "RageLog.h"
#include "ThemeManager.h"
enum {
GO_BGMODE,
GO_BGBRIGHTNESS,
GO_BGIFNOBANNER,
GO_EASTER_EGGS,
GO_MARVELOUS,
GO_HIDDEN_SONGS,
GO_SHOW_DANGER,
NUM_GAMEPLAY_OPTIONS_LINES
};
OptionRowData g_GameplayOptionsLines[NUM_GAMEPLAY_OPTIONS_LINES] = {
{ "Background\nMode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
{ "Background\nBrightness", 11, {"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"} },
{ "BG For\nBanner", 2, {"NO", "YES (slow)"} },
{ "Show\nDanger", 2, {"OFF","ON"} },
{ "Hidden\nSongs", 2, {"OFF","ON"} },
{ "Easter\nEggs", 2, {"OFF","ON"} },
{ "Marvelous\nTiming", 2, {"OFF","ON"} },
};
ScreenGameplayOptions::ScreenGameplayOptions() :
ScreenOptions(
THEME->GetPathTo("BGAnimations","gameplay options"),
THEME->GetPathTo("Graphics","gameplay options page"),
THEME->GetPathTo("Graphics","gameplay options top edge")
)
{
LOG->Trace( "ScreenGameplayOptions::ScreenGameplayOptions()" );
// fill g_InputOptionsLines with explanation text
for( int i=0; i<NUM_GAMEPLAY_OPTIONS_LINES; i++ )
{
CString sLineName = g_GameplayOptionsLines[i].szTitle;
sLineName.Replace("\n","");
sLineName.Replace(" ","");
strcpy( g_GameplayOptionsLines[i].szExplanation, THEME->GetMetric("ScreenGameplayOptions",sLineName) );
}
Init(
INPUTMODE_BOTH,
g_GameplayOptionsLines,
NUM_GAMEPLAY_OPTIONS_LINES,
false );
m_Menu.StopTimer();
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","machine options music") );
}
void ScreenGameplayOptions::ImportOptions()
{
m_iSelectedOption[0][GO_BGMODE] = PREFSMAN->m_BackgroundMode;
m_iSelectedOption[0][GO_BGBRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f );
m_iSelectedOption[0][GO_BGIFNOBANNER] = PREFSMAN->m_bUseBGIfNoBanner ? 1:0;
m_iSelectedOption[0][GO_SHOW_DANGER] = PREFSMAN->m_bShowDanger ? 1:0;
m_iSelectedOption[0][GO_HIDDEN_SONGS] = PREFSMAN->m_bHiddenSongs ? 1:0;
m_iSelectedOption[0][GO_EASTER_EGGS] = PREFSMAN->m_bEasterEggs ? 1:0;
m_iSelectedOption[0][GO_MARVELOUS] = PREFSMAN->m_bMarvelousTiming ? 1:0;
}
void ScreenGameplayOptions::ExportOptions()
{
(int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][GO_BGMODE];
PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][GO_BGBRIGHTNESS] / 10.0f;
PREFSMAN->m_bUseBGIfNoBanner = m_iSelectedOption[0][GO_BGIFNOBANNER] == 1;
PREFSMAN->m_bShowDanger = m_iSelectedOption[0][GO_SHOW_DANGER] == 1;
PREFSMAN->m_bHiddenSongs = m_iSelectedOption[0][GO_HIDDEN_SONGS] == 1;
PREFSMAN->m_bEasterEggs = m_iSelectedOption[0][GO_EASTER_EGGS] == 1;
PREFSMAN->m_bMarvelousTiming = m_iSelectedOption[0][GO_MARVELOUS] == 1;
}
void ScreenGameplayOptions::GoToPrevState()
{
SCREENMAN->SetNewScreen( "ScreenOptionsMenu" );
}
void ScreenGameplayOptions::GoToNextState()
{
PREFSMAN->SaveGlobalPrefsToDisk();
GoToPrevState();
}
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
File: ScreenGameplayOptions
Desc: Select a song.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenOptions.h"
class ScreenGameplayOptions : public ScreenOptions
{
public:
ScreenGameplayOptions();
private:
void ImportOptions();
void ExportOptions();
void GoToNextState();
void GoToPrevState();
};
-12
View File
@@ -31,10 +31,7 @@ enum {
GO_TEXTURE_COLOR_DEPTH,
GO_KEEP_TEXTURES_IN_MEM,
GO_REFRESH_RATE,
GO_BGMODE,
GO_BGBRIGHTNESS,
GO_MOVIEDECODEMS,
GO_BGIFNOBANNER,
GO_VSYNC,
NUM_GRAPHIC_OPTIONS_LINES
};
@@ -46,10 +43,7 @@ OptionRowData g_GraphicOptionsLines[NUM_GRAPHIC_OPTIONS_LINES] = {
{ "Texture\nColor", 2, {"16BIT","32BIT"} },
{ "Keep Textures\nIn Memory",2, {"NO","YES"} },
{ "Refresh\nRate", 11, {"DEFAULT","60","70","72","75","80","85","90","100","120","150"} },
{ "Background\nMode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
{ "Background\nBrightness", 11, {"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"} },
{ "Movie\nDecode", 4, {"1ms","2ms","3ms","4ms"} },
{ "BG For\nBanner", 2, {"NO", "YES (slow)"} },
{ "Wait For\nVsync", 2, {"NO", "YES"} },
};
@@ -140,10 +134,7 @@ void ScreenGraphicOptions::ImportOptions()
}
}
m_iSelectedOption[0][GO_BGMODE] = PREFSMAN->m_BackgroundMode;
m_iSelectedOption[0][GO_BGBRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f );
m_iSelectedOption[0][GO_MOVIEDECODEMS] = PREFSMAN->m_iMovieDecodeMS-1;
m_iSelectedOption[0][GO_BGIFNOBANNER] = PREFSMAN->m_bUseBGIfNoBanner ? 1:0;
m_iSelectedOption[0][GO_VSYNC] = PREFSMAN->m_bVsync ? 1:0;
}
@@ -185,10 +176,7 @@ void ScreenGraphicOptions::ExportOptions()
PREFSMAN->m_iRefreshRate = atoi(g_GraphicOptionsLines[GO_REFRESH_RATE].szOptionsText[n]);
}
(int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][GO_BGMODE];
PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][GO_BGBRIGHTNESS] / 10.0f;
PREFSMAN->m_iMovieDecodeMS = m_iSelectedOption[0][GO_MOVIEDECODEMS]+1;
PREFSMAN->m_bUseBGIfNoBanner = m_iSelectedOption[0][GO_BGIFNOBANNER] == 1;
PREFSMAN->m_bVsync = m_iSelectedOption[0][GO_VSYNC] == 1;
}
-16
View File
@@ -25,14 +25,10 @@
enum {
MO_MENU_TIMER,
MO_SHOW_DANGER,
MO_NUM_ARCADE_STAGES,
MO_JUDGE_DIFFICULTY,
MO_LIFE_DIFFICULTY,
MO_HIDDEN_SONGS,
MO_SHOWSTATS,
MO_EASTER_EGGS,
MO_MARVELOUS,
MO_COIN_MODE,
MO_COINS_PER_CREDIT,
MO_JOINT_PREMIUM,
@@ -42,14 +38,10 @@ enum {
* preferably alongside button configuration. */
OptionRowData g_MachineOptionsLines[NUM_MACHINE_OPTIONS_LINES] = {
{ "Menu\nTimer", 2, {"OFF","ON"} },
{ "Show\nDanger", 2, {"OFF","ON"} },
{ "Arcade\nStages", 8, {"1","2","3","4","5","6","7","UNLIMITED"} },
{ "Judge\nDifficulty", 8, {"1","2","3","4","5","6","7","8"} },
{ "Life\nDifficulty", 7, {"1","2","3","4","5","6","7"} },
{ "Hidden\nSongs", 2, {"OFF","ON"} },
{ "Show\nStats", 2, {"OFF","ON"} },
{ "Easter\nEggs", 2, {"OFF","ON"} },
{ "Marvelous\nTiming", 2, {"OFF","ON"} },
{ "Coin\nMode", 3, {"HOME","PAY","FREE PLAY"} },
{ "Coins Per\nCredit", 8, {"1","2","3","4","5","6","7","8"} },
{ "Joint\nPremium", 2, {"OFF","ON"} },
@@ -86,9 +78,7 @@ ScreenMachineOptions::ScreenMachineOptions() :
void ScreenMachineOptions::ImportOptions()
{
m_iSelectedOption[0][MO_MENU_TIMER] = PREFSMAN->m_bMenuTimer ? 1:0;
m_iSelectedOption[0][MO_SHOW_DANGER] = PREFSMAN->m_bShowDanger ? 1:0;
m_iSelectedOption[0][MO_NUM_ARCADE_STAGES] = PREFSMAN->m_bEventMode ? 7 : PREFSMAN->m_iNumArcadeStages - 1;
m_iSelectedOption[0][MO_HIDDEN_SONGS] = PREFSMAN->m_bHiddenSongs ? 1:0;
/* .02 difficulty is beyond our timing right now; even autoplay
* misses! At least fix autoplay before enabling this, or we'll
@@ -118,8 +108,6 @@ void ScreenMachineOptions::ImportOptions()
else m_iSelectedOption[0][MO_LIFE_DIFFICULTY] = 3;
m_iSelectedOption[0][MO_SHOWSTATS] = PREFSMAN->m_bShowStats ? 1:0;
m_iSelectedOption[0][MO_EASTER_EGGS] = PREFSMAN->m_bEasterEggs ? 1:0;
m_iSelectedOption[0][MO_MARVELOUS] = PREFSMAN->m_bMarvelousTiming ? 1:0;
m_iSelectedOption[0][MO_COIN_MODE] = PREFSMAN->m_CoinMode;
m_iSelectedOption[0][MO_COINS_PER_CREDIT] = PREFSMAN->m_iCoinsPerCredit - 1;
m_iSelectedOption[0][MO_JOINT_PREMIUM] = PREFSMAN->m_bJointPremium ? 1:0;
@@ -128,10 +116,8 @@ void ScreenMachineOptions::ImportOptions()
void ScreenMachineOptions::ExportOptions()
{
PREFSMAN->m_bMenuTimer = m_iSelectedOption[0][MO_MENU_TIMER] == 1;
PREFSMAN->m_bShowDanger = m_iSelectedOption[0][MO_SHOW_DANGER] == 1;
PREFSMAN->m_bEventMode = m_iSelectedOption[0][MO_NUM_ARCADE_STAGES] == 7;
PREFSMAN->m_iNumArcadeStages = m_iSelectedOption[0][MO_NUM_ARCADE_STAGES] + 1;
PREFSMAN->m_bHiddenSongs = m_iSelectedOption[0][MO_HIDDEN_SONGS] == 1;
switch( m_iSelectedOption[0][MO_JUDGE_DIFFICULTY] )
{
@@ -159,8 +145,6 @@ void ScreenMachineOptions::ExportOptions()
}
PREFSMAN->m_bShowStats = m_iSelectedOption[0][MO_SHOWSTATS] == 1;
PREFSMAN->m_bEasterEggs = m_iSelectedOption[0][MO_EASTER_EGGS] == 1;
PREFSMAN->m_bMarvelousTiming = m_iSelectedOption[0][MO_MARVELOUS] == 1;
(int&)PREFSMAN->m_CoinMode = m_iSelectedOption[0][MO_COIN_MODE];
PREFSMAN->m_iCoinsPerCredit = m_iSelectedOption[0][MO_COINS_PER_CREDIT] + 1;
PREFSMAN->m_bJointPremium = m_iSelectedOption[0][MO_JOINT_PREMIUM] == 1;
+2
View File
@@ -203,6 +203,7 @@ void ScreenManager::Input( const DeviceInput& DeviceI, const InputEventType type
#include "ScreenNameEntry.h"
#include "ScreenJukebox.h"
#include "ScreenOptionsMenu.h"
#include "ScreenGameplayOptions.h"
#include "ScreenPrompt.h"
#include "ScreenTextEntry.h"
@@ -256,6 +257,7 @@ Screen* ScreenManager::MakeNewScreen( CString sClassName )
else if( 0==stricmp(sClassName, "ScreenNameEntry") ) ret = new ScreenNameEntry;
else if( 0==stricmp(sClassName, "ScreenJukebox") ) ret = new ScreenJukebox;
else if( 0==stricmp(sClassName, "ScreenOptionsMenu") ) ret = new ScreenOptionsMenu;
else if( 0==stricmp(sClassName, "ScreenGameplayOptions") ) ret = new ScreenGameplayOptions;
else
RageException::Throw( "Invalid Screen class name '%s'", sClassName.GetString() );
+11 -33
View File
@@ -270,6 +270,11 @@ void ScreenOptions::PositionUnderlines()
// Quad &underline = m_OptionUnderline[p][i];
OptionsCursor &underline = m_Underline[p][i];
// If there's only one choice (ScreenOptionsMenu), don't show underlines.
// It looks silly.
bool bOnlyOneChoice = m_OptionRowData[i].iNumOptions == 1;
underline.SetDiffuse( bOnlyOneChoice ? RageColor(1,1,1,0) : RageColor(1,1,1,1) );
int iWidth, iX, iY;
GetWidthXY( (PlayerNumber)p, i, iWidth, iX, iY );
underline.SetBarWidth( iWidth );
@@ -487,17 +492,10 @@ void ScreenOptions::MenuLeft( PlayerNumber pn )
return; // don't allow a move
const int iNumOptions = m_OptionRowData[iCurRow].iNumOptions;
if( iNumOptions == 1 )
continue;
m_iSelectedOption[p][iCurRow] = (m_iSelectedOption[p][iCurRow]-1+iNumOptions) % iNumOptions;
// Chris: I commented this out because it made wrapping a pain. Is it used anyway? If so, please
// let me know and I'll fix it.
// do {
// new_opt--;
// } while(new_opt >= 0 && m_OptionDim[iCurRow][new_opt]);
//
// if( new_opt < 0 ) // can't go left any more
// return;
//
// m_iSelectedOption[p][iCurRow] = new_opt;
TweenCursor( (PlayerNumber)p );
}
@@ -518,19 +516,10 @@ void ScreenOptions::MenuRight( PlayerNumber pn )
return; // don't allow a move
const int iNumOptions = m_OptionRowData[iCurRow].iNumOptions;
if( iNumOptions == 1 )
continue;
m_iSelectedOption[p][iCurRow] = (m_iSelectedOption[p][iCurRow]+1) % iNumOptions;
// Chris: I commented this out because it made wrapping a pain. Is it used anyway? If so, please
// let me know and I'll fix it.
// int new_opt = m_iSelectedOption[p][iCurRow];
// do {
// new_opt++;
// } while(new_opt < m_OptionRowData[iCurRow].iNumOptions &&
// m_OptionDim[iCurRow][new_opt]);
//
// if( new_opt == m_OptionRowData[iCurRow].iNumOptions ) // can't go right any more
// return;
//
// m_iSelectedOption[p][iCurRow] = new_opt;
TweenCursor( (PlayerNumber)p );
}
@@ -550,17 +539,6 @@ void ScreenOptions::MenuUp( PlayerNumber pn )
m_iCurrentRow[p]--;
// Chris: Will add back in later
// /* Find the prev row with any un-dimmed entries. */
// int new_row = m_iCurrentRow[p];
// do {
/// if(--new_row < 0)
// new_row = m_iNumOptionRows-1; // wrap around
// if(!RowCompletelyDimmed(new_row)) break;
// } while(new_row != m_iCurrentRow[p]);
// m_iCurrentRow[p] = new_row;
TweenCursor( (PlayerNumber)p );
}
m_SoundPrevRow.Play();
+3
View File
@@ -30,6 +30,7 @@ enum {
OM_INPUT = 0,
OM_MACHINE,
OM_GRAPHIC,
OM_GAMEPLAY,
OM_APPEARANCE,
NUM_OPTIONS_MENU_LINES
};
@@ -38,6 +39,7 @@ OptionRowData g_OptionsMenuLines[NUM_OPTIONS_MENU_LINES] = {
{ "", 1, {"Input Options"} },
{ "", 1, {"Machine Options"} },
{ "", 1, {"Graphic Options"} },
{ "", 1, {"Gameplay Options"} },
{ "", 1, {"Appearance Options"} },
};
@@ -91,6 +93,7 @@ void ScreenOptionsMenu::GoToNextState()
case OM_INPUT: SCREENMAN->SetNewScreen("ScreenInputOptions"); break;
case OM_MACHINE: SCREENMAN->SetNewScreen("ScreenMachineOptions"); break;
case OM_GRAPHIC: SCREENMAN->SetNewScreen("ScreenGraphicOptions"); break;
case OM_GAMEPLAY: SCREENMAN->SetNewScreen("ScreenGameplayOptions"); break;
case OM_APPEARANCE: SCREENMAN->SetNewScreen("ScreenAppearanceOptions"); break;
default: // Exit
SCREENMAN->SetNewScreen("ScreenTitleMenu");
+1 -1
View File
@@ -103,7 +103,7 @@ void ScreenPrompt::Input( const DeviceInput& DeviceI, const InputEventType type,
this->MenuLeft( StyleI.player );
return;
case SDLK_RIGHT:
this->MenuLeft( StyleI.player );
this->MenuRight( StyleI.player );
return;
}
}
+10 -2
View File
@@ -60,7 +60,7 @@ IntDir=.\../Release6
TargetDir=\stepmania\stepmania
TargetName=StepMania
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool
@@ -95,7 +95,7 @@ IntDir=.\../Debug6
TargetDir=\stepmania\stepmania
TargetName=StepMania-debug
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool
@@ -1465,6 +1465,14 @@ SOURCE=.\ScreenGameplay.h
# End Source File
# Begin Source File
SOURCE=.\ScreenGameplayOptions.cpp
# End Source File
# Begin Source File
SOURCE=.\ScreenGameplayOptions.h
# End Source File
# Begin Source File
SOURCE=.\ScreenGraphicOptions.cpp
# End Source File
# Begin Source File
+6
View File
@@ -246,6 +246,12 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
<File
RelativePath="ScreenGameplay.h">
</File>
<File
RelativePath="ScreenGameplayOptions.cpp">
</File>
<File
RelativePath="ScreenGameplayOptions.h">
</File>
<File
RelativePath="ScreenGraphicOptions.cpp">
</File>