Added description to ScreenOptions. Making a whole separate ScreenPreferences turned out to be a pain.

This commit is contained in:
Chris Danford
2002-09-10 21:16:34 +00:00
parent 9858e18467
commit 223556b026
9 changed files with 117 additions and 63 deletions
-37
View File
@@ -4,8 +4,6 @@ Fix
Ready, here we go closer to start of notes
off center backgrounds
correct songs played show on eval
make sure supports music in "Music" folder
@@ -14,35 +12,8 @@ supports music folder if aditional dirs
"How to Play" explanation with the freeze arrows nearly takes up the entire screen.
KeepAlive doesn't fold during how to play
"try extra stage" swoop instead of cleared
Wow! pngcrush takes off 50% on some of these paletted pngs. I'll look into making a script that we can check into CVS and run periodically.
disable modifiers in extra stage
the only other thing is to encorporate `...' to replace <...>, and instead turn the <...> as triple jumps or more than 2 arrow jumps. its the new DWI format.
change "bg change" to show a list
change background change to look for movies in song dir and bganimations in song dir
You're saying that right now the max combo text is being drawn underneath the bonus frame?
the MAX announcer dosnt say "Extra Stage" anymore
SlinkyWizard30: and there is no "%" sign on Oni
crash loading bga in Win98
editor play and record without set range
editor intro prompt
oni-specific comments
arcade mode
about us page
new phpwebhosting account
@@ -53,10 +24,6 @@ RMA phone
RMA Kiko USB
couples format
3/5 button options toggle
kitsappt photos
slower eval bar tween
@@ -65,10 +32,6 @@ max style judge tween
add turns to editor
164 theme
gap between wheel items
sample pop
fix screwed up scroll bar
+36 -1
View File
@@ -21,6 +21,7 @@ ColorHard=0.2,1,0.2,1 // light green
ChoicesX=320
ChoicesStartY=54
ChoicesSpacingY=42
ChoicesShadowLength=5
HelpX=320
HelpY=440
LogoX=320
@@ -471,6 +472,9 @@ ItemsStartX=160
ItemsGapX=14
ItemsStartY=88
ItemsSpacingY=34
ExplanationX=320
ExplanationY=412
ExplanationZoom=0.5
ColorSelected=1,1,1,1 // normal
ColorNotSelected=0.5,0.5,0.5,1 // grayed
HelpText=# $ to change line ! " to select between options then press START
@@ -634,4 +638,35 @@ Uppercase=1
SpacingX=38
SpacingY=0
\
[ScreenInputOptions]
IgnoreJoyAxes="ON" will cause StepMania to ignore all input from::joystick directional pads. This is useful for people using::the DirectPad Pro driver.
MenuButtons=The default setting allows the dance pad's panels to navigate::the menus. Changing this to "dedicated only" will restrict::menu navigation to only the Menu* set of buttons. Be sure to map::the Menu* set of buttons before setting this to "dedicated"!
AutoPlay=This option is useful for those who would like to play::without using a pad. However, you will not be able to set::high scores or earn extra stages while this options is ON.
BackDelayed=Turning this option ON will require that you hold the Back button::for 0.5 seconds before it will regiser. This is useful if you find::yourself accidentally pressing the Back button on your controller.
OptionsNavigation=When using "SM style", the Start button will take::you to the next screen and Up/Down will switch option lines.::When using "Arcade style", the Start button will move the cursor::to the next line and Up/Down will be ignored.
[ScreenMachineOptions]
MenuTimer=Turn this "OFF" to disable the time limit in menus.
ShowDanger=Turn this option "OFF" to disable the flashing "Danger"::background that shows when you're about to die.
ArcadeStages=The number of songs a player can play in Arcade mode.::Set this to "Unlimited", and you can continue playing forever.::Also, when this option is set to "Unlimited", failing will take you::back to the the Select Music or Select Course screen.
JudgeDifficulty=Increase this value to cause your steps to be judged more strictly::(i.e. shink the timing window).
LifeDifficulty=Increate this value to cause your life meter to::drain faster and refill slower.
HiddenSongs=Glenn: What exactly does this do?
ShowStats=Display Performance Statistics in the upper right corner::of the screen. FPS = frames per second.::TPF = triangles per frame. DPF = draws per frame.
[ScreenGraphicOptions]
DisplayMode=Chose whether you would like StepMania to run full screen,::or to display in a window on your desktop
DisplayResolution=Choose the output resolution. A higher resolution::will show more detail, but requires a faster video card.
TextureResolution=Choose the maximum texture resolution. Setting this::to anything below 1024 will cause some textures to appear blurry,::but may increase your frame rate.
RefreshRate=Controls how many times per second the screen will refresh.::This setting only has an effect when the Display Mode::is set to "full screen".
BackgroundMode=Chose what type of backgrounds you would like displayed.::"Animations" uses any random items in the BGAnimations folder.::"Visualizations" chooses a random overlay movie from the Visualization folder.::"Random Movies" cycles through movies in the RandomMovies folder.
BackgroundBrightness=Controls how bright the background will appear.::Turn this setting down if you have a hard time seeing the notes.
MovieDecode=When a movie texture is being used, StepMania will spend this much time::between each frame to decode the next frame of the movie. If your frame rate::is high but movie texures skip, then increase this value.
BGForBanner=Instead of displaying the banner image in menus, display::the song background instead. Backgrounds can look better::than banners because they are higher resolution, but they::will take longer to load and may result in some "skipping".
WaitForVsync=Wait for the monitor's vertical retrace before displaying::the next frame. This option only has an effect when the::Display Mode is set to "full screen". Turning this option off will not::cap your frame rate to the refresh rate, but may result in "tearing".
[ScreenAppearanceOptions]
Announcer=Choose from this list of installed annoucner packs.::For more information about creating announcer packs, see the README.
Theme=Choose from this list of installed theme packs.::For more information about creating theme packs, see the README.
NoteSkin=Choose from this list of installed note skins.::For more information about creating a note skin, see the README.
HowToPlay=Toggle whether the How To Play screen is shown.
+11 -2
View File
@@ -35,10 +35,10 @@ enum {
};
OptionRowData g_AppearanceOptionsLines[NUM_APPEARANCE_OPTIONS_LINES] = {
{ "Announ\n-cer", 1, {"OFF"} }, // fill this in on ImportOptions()
{ "Announcer", 1, {"OFF"} }, // fill this in on ImportOptions()
{ "Theme", 0, {""} }, // fill this in on ImportOptions()
{ "Note\nSkin", 0, {""} }, // fill this in on ImportOptions()
{ "How To\nPlay", 2, {"OFF","ON"} },
{ "How To\nPlay", 2, {"SKIP","SHOW"} },
};
ScreenAppearanceOptions::ScreenAppearanceOptions() :
@@ -50,6 +50,15 @@ ScreenAppearanceOptions::ScreenAppearanceOptions() :
{
LOG->Trace( "ScreenAppearanceOptions::ScreenAppearanceOptions()" );
// fill g_InputOptionsLines with explanation text
for( int i=0; i<NUM_APPEARANCE_OPTIONS_LINES; i++ )
{
CString sLineName = g_AppearanceOptionsLines[i].szTitle;
sLineName.Replace("\n","");
sLineName.Replace(" ","");
strcpy( g_AppearanceOptionsLines[i].szExplanation, THEME->GetMetric("ScreenAppearanceOptions",sLineName) );
}
Init(
INPUTMODE_BOTH,
g_AppearanceOptionsLines,
+18 -13
View File
@@ -28,7 +28,6 @@ enum {
GO_DISPLAY_RESOLUTION,
GO_TEXTURE_RESOLUTION,
GO_REFRESH_RATE,
GO_SHOWSTATS,
GO_BGMODE,
GO_BGBRIGHTNESS,
GO_MOVIEDECODEMS,
@@ -37,16 +36,15 @@ enum {
NUM_GRAPHIC_OPTIONS_LINES
};
OptionRowData g_GraphicOptionsLines[NUM_GRAPHIC_OPTIONS_LINES] = {
{ "Display", 2, {"FULLSCREEN", "WINDOWED"} },
{ "Display\nRes", 7, {"320","400","512","640","800","1024","1280"} },
{ "Texture\nRes", 3, {"256","512","1024"} },
{ "Refresh\nRate", 11, {"DEFAULT","MAX","60","70","72","75","80","85","90","100","120"} },
{ "Show\nStats", 2, {"OFF","ON"} },
{ "BG\nMode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
{ "BG\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"} },
{ "Display\nMode", 2, {"FULLSCREEN", "WINDOWED"} },
{ "Display\nResolution", 7, {"320","400","512","640","800","1024","1280"} },
{ "Texture\nResolution", 3, {"256","512","1024"} },
{ "Refresh\nRate", 11, {"DEFAULT","MAX","60","70","72","75","80","85","90","100","120"} },
{ "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"} },
};
static const int HorizRes[] = {
@@ -65,6 +63,15 @@ ScreenGraphicOptions::ScreenGraphicOptions() :
{
LOG->Trace( "ScreenGraphicOptions::ScreenGraphicOptions()" );
// fill g_InputOptionsLines with explanation text
for( int i=0; i<NUM_GRAPHIC_OPTIONS_LINES; i++ )
{
CString sLineName = g_GraphicOptionsLines[i].szTitle;
sLineName.Replace("\n","");
sLineName.Replace(" ","");
strcpy( g_GraphicOptionsLines[i].szExplanation, THEME->GetMetric("ScreenGraphicOptions",sLineName) );
}
Init(
INPUTMODE_BOTH,
g_GraphicOptionsLines,
@@ -168,7 +175,6 @@ void ScreenGraphicOptions::ImportOptions()
default: m_iSelectedOption[0][GO_REFRESH_RATE] = 1; break;
}
m_iSelectedOption[0][GO_SHOWSTATS] = PREFSMAN->m_bShowStats ? 1:0;
m_iSelectedOption[0][GO_BGMODE] = PREFSMAN->m_BackgroundMode;
m_iSelectedOption[0][GO_BGBRIGHTNESS] = roundf( PREFSMAN->m_fBGBrightness*10 );
m_iSelectedOption[0][GO_MOVIEDECODEMS] = PREFSMAN->m_iMovieDecodeMS-1;
@@ -211,7 +217,6 @@ void ScreenGraphicOptions::ExportOptions()
default: ASSERT(0); PREFSMAN->m_iRefreshRate = 0; break;
}
PREFSMAN->m_bShowStats = m_iSelectedOption[0][GO_SHOWSTATS] == 1;
PREFSMAN->m_BackgroundMode = PrefsManager::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;
+11 -2
View File
@@ -22,7 +22,6 @@
#include "RageLog.h"
enum {
IO_IGNORE_AXES = 0,
IO_DEDICATED_MENU_BUTTONS,
@@ -31,10 +30,11 @@ enum {
IO_OPTIONS_NAVIGATION,
NUM_INPUT_OPTIONS_LINES
};
/* Hmm. Ignore JoyAxes and Back Delayed probably belong in "input options",
* preferably alongside button configuration. */
OptionRowData g_InputOptionsLines[NUM_INPUT_OPTIONS_LINES] = {
{ "Ignore\nJoyAxes", 2, {"OFF","ON (for NTPad or DirectPad)"} },
{ "Ignore\nJoy Axes", 2, {"OFF","ON (for NTPad or DirectPad)"} },
{ "Menu\nButtons", 2, {"USE GAMEPLAY BUTTONS","ONLY DEDICATED BUTTONS"} },
{ "AutoPlay", 2, {"OFF","ON"} },
{ "Back\nDelayed", 2, {"INSTANT","HOLD"} },
@@ -50,6 +50,15 @@ ScreenInputOptions::ScreenInputOptions() :
{
LOG->Trace( "ScreenInputOptions::ScreenInputOptions()" );
// fill g_InputOptionsLines with explanation text
for( int i=0; i<NUM_INPUT_OPTIONS_LINES; i++ )
{
CString sLineName = g_InputOptionsLines[i].szTitle;
sLineName.Replace("\n","");
sLineName.Replace(" ","");
strcpy( g_InputOptionsLines[i].szExplanation, THEME->GetMetric("ScreenInputOptions",sLineName) );
}
Init(
INPUTMODE_BOTH,
g_InputOptionsLines,
+14
View File
@@ -30,6 +30,7 @@ enum {
MO_JUDGE_DIFFICULTY,
MO_LIFE_DIFFICULTY,
MO_HIDDEN_SONGS,
MO_SHOWSTATS,
NUM_MACHINE_OPTIONS_LINES
};
/* Hmm. Ignore JoyAxes and Back Delayed probably belong in "input options",
@@ -41,6 +42,7 @@ OptionRowData g_MachineOptionsLines[NUM_MACHINE_OPTIONS_LINES] = {
{ "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"} },
};
ScreenMachineOptions::ScreenMachineOptions() :
@@ -52,6 +54,15 @@ ScreenMachineOptions::ScreenMachineOptions() :
{
LOG->Trace( "ScreenMachineOptions::ScreenMachineOptions()" );
// fill g_InputOptionsLines with explanation text
for( int i=0; i<NUM_MACHINE_OPTIONS_LINES; i++ )
{
CString sLineName = g_MachineOptionsLines[i].szTitle;
sLineName.Replace("\n","");
sLineName.Replace(" ","");
strcpy( g_MachineOptionsLines[i].szExplanation, THEME->GetMetric("ScreenMachineOptions",sLineName) );
}
Init(
INPUTMODE_BOTH,
g_MachineOptionsLines,
@@ -96,6 +107,8 @@ void ScreenMachineOptions::ImportOptions()
else if( PREFSMAN->m_fLifeDifficultyScale == 0.60f ) m_iSelectedOption[0][MO_LIFE_DIFFICULTY] = 5;
else if( PREFSMAN->m_fLifeDifficultyScale == 0.40f ) m_iSelectedOption[0][MO_LIFE_DIFFICULTY] = 6;
else m_iSelectedOption[0][MO_LIFE_DIFFICULTY] = 3;
m_iSelectedOption[0][MO_SHOWSTATS] = PREFSMAN->m_bShowStats ? 1:0;
}
void ScreenMachineOptions::ExportOptions()
@@ -132,6 +145,7 @@ void ScreenMachineOptions::ExportOptions()
default: ASSERT(0);
}
PREFSMAN->m_bShowStats = m_iSelectedOption[0][MO_SHOWSTATS] == 1;
}
void ScreenMachineOptions::GoToPrevState()
+22 -7
View File
@@ -31,6 +31,9 @@
#define ITEMS_GAP_X THEME->GetMetricF("ScreenOptions","ItemsGapX")
#define ITEMS_START_Y THEME->GetMetricF("ScreenOptions","ItemsStartY")
#define ITEMS_SPACING_Y THEME->GetMetricF("ScreenOptions","ItemsSpacingY")
#define EXPLANATION_X THEME->GetMetricF("ScreenOptions","ExplanationX")
#define EXPLANATION_Y THEME->GetMetricF("ScreenOptions","ExplanationY")
#define EXPLANATION_ZOOM THEME->GetMetricF("ScreenOptions","ExplanationZoom")
#define HELP_TEXT THEME->GetMetric("ScreenOptions","HelpText")
#define TIMER_SECONDS THEME->GetMetricI("ScreenOptions","TimerSeconds")
#define COLOR_SELECTED THEME->GetMetricC("ScreenOptions","ColorSelected")
@@ -66,7 +69,6 @@ ScreenOptions::ScreenOptions( CString sBackgroundPath, CString sPagePath, CStrin
m_sprPage.SetXY( CENTER_X, CENTER_Y );
m_framePage.AddChild( &m_sprPage );
for( int p=0; p<NUM_PLAYERS; p++ )
{
m_iCurrentRow[p] = 0;
@@ -137,6 +139,13 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRowData[], int iNumO
// TRICKY: Add one more item. This will be "EXIT"
m_framePage.AddChild( &m_textOptions[i][0] );
// add explanation here so it appears on top
m_textExplanation.LoadFromFont( THEME->GetPathTo("Fonts","options explanation") );
m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
m_textExplanation.SetZoom( EXPLANATION_ZOOM );
m_textExplanation.SetShadowLength( 2 );
m_framePage.AddChild( &m_textExplanation );
InitOptionsText();
PositionUnderlines();
@@ -144,12 +153,12 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRowData[], int iNumO
RefreshIcons();
PositionCursors();
UpdateEnabledDisabled();
OnChange();
}
ScreenOptions::~ScreenOptions()
{
LOG->Trace( "ScreenOptions::~ScreenOptions()" );
}
@@ -363,12 +372,12 @@ void ScreenOptions::UpdateEnabledDisabled()
m_textOptions[i][j].SetDiffuse( bThisRowIsSelected ? colorSelected : colorNotSelected );
}
bool bThisRowIsSelected = false;
bool bThisRowIsSelectedByBoth = true;
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->IsPlayerEnabled(p) && m_iCurrentRow[p] == i )
bThisRowIsSelected = true;
m_textOptions[i][0].SetDiffuse( bThisRowIsSelected ? colorSelected : colorNotSelected );
if( bThisRowIsSelected )
if( GAMESTATE->IsPlayerEnabled(p) && m_iCurrentRow[p] != i )
bThisRowIsSelectedByBoth = false;
m_textOptions[i][0].SetDiffuse( bThisRowIsSelectedByBoth ? colorNotSelected : colorSelected );
if( bThisRowIsSelectedByBoth )
m_textOptions[i][0].SetEffectCamelion( 2.5, colorSelected, colorNotSelected );
else
m_textOptions[i][0].SetEffectNone();
@@ -430,6 +439,12 @@ void ScreenOptions::OnChange()
PositionUnderlines();
RefreshIcons();
UpdateEnabledDisabled();
int iCurRow = m_iCurrentRow[PLAYER_1];
if( iCurRow < m_iNumOptionRows )
m_textExplanation.SetText( m_OptionRowData[iCurRow].szExplanation );
else
m_textExplanation.SetText( "" );
}
+3
View File
@@ -31,6 +31,7 @@ struct OptionRowData {
char szTitle[30];
int iNumOptions;
char szOptionsText[MAX_OPTIONS_PER_LINE][60];
char szExplanation[2048];
};
enum InputMode
@@ -102,6 +103,8 @@ protected:
OptionIcon m_OptionIcons[NUM_PLAYERS][MAX_OPTION_LINES];
OptionsCursor m_Highlight[NUM_PLAYERS];
BitmapText m_textExplanation;
RageSoundSample m_SoundChangeCol;
RageSoundSample m_SoundNextRow;
RageSoundSample m_SoundPrevRow;
+2 -1
View File
@@ -38,6 +38,7 @@ const CString CHOICE_TEXT[ScreenTitleMenu::NUM_TITLE_MENU_CHOICES] = {
#define CHOICES_X THEME->GetMetricF("ScreenTitleMenu","ChoicesX")
#define CHOICES_START_Y THEME->GetMetricF("ScreenTitleMenu","ChoicesStartY")
#define CHOICES_SPACING_Y THEME->GetMetricF("ScreenTitleMenu","ChoicesSpacingY")
#define CHOICES_SHADOW_LENGTH THEME->GetMetricF("ScreenTitleMenu","ChoicesShadowLength")
#define HELP_X THEME->GetMetricF("ScreenTitleMenu","HelpX")
#define HELP_Y THEME->GetMetricF("ScreenTitleMenu","HelpY")
#define LOGO_X THEME->GetMetricF("ScreenTitleMenu","LogoX")
@@ -144,7 +145,7 @@ ScreenTitleMenu::ScreenTitleMenu()
m_textChoice[i].LoadFromFont( THEME->GetPathTo("Fonts","titlemenu") );
m_textChoice[i].SetText( CHOICE_TEXT[i] );
m_textChoice[i].SetXY( CHOICES_X, CHOICES_START_Y + i*CHOICES_SPACING_Y );
m_textChoice[i].SetShadowLength( 5 );
m_textChoice[i].SetShadowLength( CHOICES_SHADOW_LENGTH );
this->AddChild( &m_textChoice[i] );
}