2002-05-20 08:59:37 +00:00
|
|
|
#include "stdafx.h"
|
|
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
File: ScreenPlayerOptions.h
|
|
|
|
|
|
|
|
|
|
Desc: Select a song.
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "ScreenPlayerOptions.h"
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include "RageTextureManager.h"
|
|
|
|
|
#include "RageUtil.h"
|
|
|
|
|
#include "RageMusic.h"
|
|
|
|
|
#include "ScreenManager.h"
|
|
|
|
|
#include "ScreenGameplay.h"
|
|
|
|
|
#include "ScreenSongOptions.h"
|
|
|
|
|
#include "GameConstantsAndTypes.h"
|
2002-07-23 01:41:40 +00:00
|
|
|
#include "PrefsManager.h"
|
2002-05-20 08:59:37 +00:00
|
|
|
#include "ScreenSelectMusic.h"
|
|
|
|
|
#include "RageLog.h"
|
|
|
|
|
#include "GameManager.h"
|
2002-07-23 01:41:40 +00:00
|
|
|
#include "GameState.h"
|
2002-05-20 08:59:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
|
PO_SPEED = 0,
|
|
|
|
|
PO_EFFECT,
|
|
|
|
|
PO_APPEAR,
|
|
|
|
|
PO_TURN,
|
|
|
|
|
PO_LITTLE,
|
|
|
|
|
PO_SCROLL,
|
|
|
|
|
PO_COLOR,
|
2002-05-27 08:23:27 +00:00
|
|
|
PO_HOLD_NOTES,
|
2002-07-03 21:27:26 +00:00
|
|
|
PO_DARK,
|
2002-05-20 08:59:37 +00:00
|
|
|
PO_DRAIN,
|
|
|
|
|
NUM_PLAYER_OPTIONS_LINES
|
|
|
|
|
};
|
|
|
|
|
OptionLineData g_PlayerOptionsLines[NUM_PLAYER_OPTIONS_LINES] = {
|
2002-07-23 01:41:40 +00:00
|
|
|
{ "Speed", 8, {"x0.5","x0.75","x1","x1.5","x2","x3","x5","x8"} },
|
2002-05-20 08:59:37 +00:00
|
|
|
{ "Effect", 6, {"OFF","BOOST","WAVE", "DRUNK", "DIZZY", "SPACE"} },
|
|
|
|
|
{ "Appear", 4, {"VISIBLE","HIDDEN","SUDDEN","STEALTH"} },
|
2002-05-27 08:23:27 +00:00
|
|
|
{ "Turn", 5, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE"} },
|
2002-05-20 08:59:37 +00:00
|
|
|
{ "Little", 2, {"OFF","ON"} },
|
|
|
|
|
{ "Scroll", 2, {"STANDARD","REVERSE"} },
|
2002-05-27 08:23:27 +00:00
|
|
|
{ "Color", 4, {"ARCADE","NOTE","FLAT","PLAIN"} },
|
|
|
|
|
{ "Holds", 2, {"OFF","ON"} },
|
2002-07-03 21:27:26 +00:00
|
|
|
{ "Dark", 2, {"OFF","ON"} },
|
2002-05-27 08:23:27 +00:00
|
|
|
{ "Drain", 3, {"NORMAL", "NO-RECOVER", "SUDDEN-DEATH"} },
|
2002-05-20 08:59:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ScreenPlayerOptions::ScreenPlayerOptions() :
|
|
|
|
|
ScreenOptions(
|
|
|
|
|
THEME->GetPathTo(GRAPHIC_PLAYER_OPTIONS_BACKGROUND),
|
|
|
|
|
THEME->GetPathTo(GRAPHIC_PLAYER_OPTIONS_TOP_EDGE)
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
LOG->WriteLine( "ScreenPlayerOptions::ScreenPlayerOptions()" );
|
|
|
|
|
|
|
|
|
|
Init(
|
|
|
|
|
INPUTMODE_2PLAYERS,
|
|
|
|
|
g_PlayerOptionsLines,
|
|
|
|
|
NUM_PLAYER_OPTIONS_LINES
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ScreenPlayerOptions::ImportOptions()
|
|
|
|
|
{
|
|
|
|
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
|
|
|
|
{
|
2002-07-23 01:41:40 +00:00
|
|
|
PlayerOptions &po = GAMESTATE->m_PlayerOptions[p];
|
2002-05-20 08:59:37 +00:00
|
|
|
|
2002-07-23 01:41:40 +00:00
|
|
|
if( po.m_fArrowScrollSpeed == 0.5f ) m_iSelectedOption[p][PO_SPEED] = 0;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 0.75f) m_iSelectedOption[p][PO_SPEED] = 1;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 1.0f ) m_iSelectedOption[p][PO_SPEED] = 2;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 1.5f ) m_iSelectedOption[p][PO_SPEED] = 3;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 2.0f ) m_iSelectedOption[p][PO_SPEED] = 4;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 3.0f ) m_iSelectedOption[p][PO_SPEED] = 5;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 5.0f ) m_iSelectedOption[p][PO_SPEED] = 6;
|
|
|
|
|
else if( po.m_fArrowScrollSpeed == 8.0f ) m_iSelectedOption[p][PO_SPEED] = 7;
|
|
|
|
|
else m_iSelectedOption[p][PO_SPEED] = 2;
|
2002-05-20 08:59:37 +00:00
|
|
|
|
|
|
|
|
m_iSelectedOption[p][PO_EFFECT] = po.m_EffectType;
|
|
|
|
|
m_iSelectedOption[p][PO_APPEAR] = po.m_AppearanceType;
|
|
|
|
|
m_iSelectedOption[p][PO_TURN] = po.m_TurnType;
|
|
|
|
|
m_iSelectedOption[p][PO_LITTLE] = po.m_bLittle ? 1 : 0;
|
|
|
|
|
m_iSelectedOption[p][PO_SCROLL] = po.m_bReverseScroll ? 1 : 0 ;
|
|
|
|
|
m_iSelectedOption[p][PO_COLOR] = po.m_ColorType;
|
2002-05-27 08:23:27 +00:00
|
|
|
m_iSelectedOption[p][PO_HOLD_NOTES] = po.m_bHoldNotes ? 1 : 0;
|
2002-07-03 21:27:26 +00:00
|
|
|
m_iSelectedOption[p][PO_DARK] = po.m_bDark ? 1 : 0;
|
2002-05-20 08:59:37 +00:00
|
|
|
m_iSelectedOption[p][PO_DRAIN] = po.m_DrainType;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ScreenPlayerOptions::ExportOptions()
|
|
|
|
|
{
|
|
|
|
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
|
|
|
|
{
|
2002-07-23 01:41:40 +00:00
|
|
|
PlayerOptions &po = GAMESTATE->m_PlayerOptions[p];
|
2002-05-20 08:59:37 +00:00
|
|
|
|
|
|
|
|
switch( m_iSelectedOption[p][PO_SPEED] )
|
|
|
|
|
{
|
2002-07-23 01:41:40 +00:00
|
|
|
case 0: po.m_fArrowScrollSpeed = 0.5f; break;
|
|
|
|
|
case 1: po.m_fArrowScrollSpeed = 0.75f; break;
|
|
|
|
|
case 2: po.m_fArrowScrollSpeed = 1.0f; break;
|
|
|
|
|
case 3: po.m_fArrowScrollSpeed = 1.5f; break;
|
|
|
|
|
case 4: po.m_fArrowScrollSpeed = 2.0f; break;
|
|
|
|
|
case 5: po.m_fArrowScrollSpeed = 3.0f; break;
|
|
|
|
|
case 6: po.m_fArrowScrollSpeed = 5.0f; break;
|
|
|
|
|
case 7: po.m_fArrowScrollSpeed = 8.0f; break;
|
2002-05-20 08:59:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-05-27 08:23:27 +00:00
|
|
|
po.m_EffectType = (PlayerOptions::EffectType)m_iSelectedOption[p][PO_EFFECT];
|
|
|
|
|
po.m_AppearanceType = (PlayerOptions::AppearanceType)m_iSelectedOption[p][PO_APPEAR];
|
|
|
|
|
po.m_TurnType = (PlayerOptions::TurnType)m_iSelectedOption[p][PO_TURN];
|
|
|
|
|
po.m_bLittle = m_iSelectedOption[p][PO_LITTLE] == 1;
|
|
|
|
|
po.m_bReverseScroll = (m_iSelectedOption[p][PO_SCROLL] == 1);
|
|
|
|
|
po.m_ColorType = (PlayerOptions::ColorType)m_iSelectedOption[p][PO_COLOR];
|
|
|
|
|
po.m_bHoldNotes = (m_iSelectedOption[p][PO_HOLD_NOTES] == 1);
|
2002-07-03 21:27:26 +00:00
|
|
|
po.m_bDark = (m_iSelectedOption[p][PO_DARK] == 1);
|
2002-07-11 19:02:26 +00:00
|
|
|
po.m_DrainType = (PlayerOptions::DrainType)m_iSelectedOption[p][PO_DRAIN];
|
2002-05-20 08:59:37 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ScreenPlayerOptions::GoToPrevState()
|
|
|
|
|
{
|
|
|
|
|
SCREENMAN->SetNewScreen( new ScreenSelectMusic );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ScreenPlayerOptions::GoToNextState()
|
|
|
|
|
{
|
|
|
|
|
SCREENMAN->SetNewScreen( new ScreenSongOptions );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|