force particular Premium and CoinMode values if bEventMode
This commit is contained in:
@@ -751,7 +751,7 @@ bool GameState::PlayersCanJoin() const
|
||||
|
||||
bool GameState::EnoughCreditsToJoin() const
|
||||
{
|
||||
switch( PREFSMAN->m_iCoinMode )
|
||||
switch( PREFSMAN->GetCoinMode() )
|
||||
{
|
||||
case COIN_PAY:
|
||||
return GAMESTATE->m_iCoins >= PREFSMAN->m_iCoinsPerCredit;
|
||||
|
||||
@@ -224,7 +224,7 @@ int GetNumCreditsPaid()
|
||||
int iNumCreditsPaid = GAMESTATE->GetNumSidesJoined();
|
||||
|
||||
// players other than the first joined for free
|
||||
if( PREFSMAN->m_Premium == PrefsManager::JOINT_PREMIUM )
|
||||
if( PREFSMAN->GetPremium() == PrefsManager::JOINT_PREMIUM )
|
||||
iNumCreditsPaid = min( iNumCreditsPaid, 1 );
|
||||
|
||||
return iNumCreditsPaid;
|
||||
@@ -233,7 +233,7 @@ int GetNumCreditsPaid()
|
||||
|
||||
int GetCreditsRequiredToPlayStyle( Style style )
|
||||
{
|
||||
if( PREFSMAN->m_Premium == PrefsManager::JOINT_PREMIUM )
|
||||
if( PREFSMAN->GetPremium() == PrefsManager::JOINT_PREMIUM )
|
||||
return 1;
|
||||
|
||||
switch( GAMEMAN->GetStyleDefForStyle(style)->m_StyleType )
|
||||
@@ -243,7 +243,7 @@ int GetCreditsRequiredToPlayStyle( Style style )
|
||||
case StyleDef::TWO_PLAYERS_TWO_CREDITS:
|
||||
return 2;
|
||||
case StyleDef::ONE_PLAYER_TWO_CREDITS:
|
||||
return (PREFSMAN->m_Premium == PrefsManager::DOUBLES_PREMIUM) ? 1 : 2;
|
||||
return (PREFSMAN->GetPremium() == PrefsManager::DOUBLES_PREMIUM) ? 1 : 2;
|
||||
default:
|
||||
ASSERT(0);
|
||||
return 1;
|
||||
@@ -289,7 +289,7 @@ bool ModeChoice::IsPlayable( CString *why ) const
|
||||
const int iNumCreditsPaid = GetNumCreditsPaid();
|
||||
const int iNumCreditsRequired = GetCreditsRequiredToPlayStyle(m_style);
|
||||
|
||||
switch( PREFSMAN->m_iCoinMode )
|
||||
switch( PREFSMAN->GetCoinMode() )
|
||||
{
|
||||
case COIN_HOME:
|
||||
case COIN_FREE:
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "RageSoundReader_Resample.h" /* for ResampleQuality */
|
||||
#include "RageFile.h"
|
||||
#include "ProductInfo.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
|
||||
#define STEPMANIA_INI_PATH "Data/StepMania.ini"
|
||||
#define STATIC_INI_PATH "Data/Static.ini"
|
||||
@@ -812,6 +813,23 @@ void PrefsManager::ResetToFactoryDefaults()
|
||||
m_bFirstRun = false;
|
||||
}
|
||||
|
||||
int PrefsManager::GetCoinMode()
|
||||
{
|
||||
if(m_bEventMode)
|
||||
return COIN_FREE;
|
||||
else
|
||||
return m_iCoinMode;
|
||||
}
|
||||
|
||||
PrefsManager::Premium PrefsManager::GetPremium()
|
||||
{
|
||||
if(m_bEventMode)
|
||||
return NO_PREMIUM;
|
||||
else
|
||||
return m_Premium;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (c) 2001-2004 Chris Danford, Chris Gomez
|
||||
* All rights reserved.
|
||||
|
||||
@@ -49,8 +49,6 @@ public:
|
||||
bool m_bOnlyDedicatedMenuButtons;
|
||||
bool m_bMenuTimer;
|
||||
bool m_bShowDanger;
|
||||
int m_iNumArcadeStages;
|
||||
bool m_bEventMode;
|
||||
|
||||
float m_fJudgeWindowScale;
|
||||
float m_fJudgeWindowSecondsMarvelous;
|
||||
@@ -139,10 +137,18 @@ public:
|
||||
int m_iMusicWheelSwitchSpeed;
|
||||
bool m_bEasterEggs;
|
||||
int m_iMarvelousTiming;
|
||||
int m_iCoinMode;
|
||||
bool m_bEventMode;
|
||||
int m_iCoinsPerCredit;
|
||||
int m_iNumArcadeStages;
|
||||
|
||||
// These options have weird interactions depending on m_bEventMode,
|
||||
// so wrap them.
|
||||
enum Premium { NO_PREMIUM, DOUBLES_PREMIUM, JOINT_PREMIUM };
|
||||
int m_iCoinMode;
|
||||
Premium m_Premium;
|
||||
int GetCoinMode();
|
||||
Premium GetPremium();
|
||||
|
||||
bool m_bDelayedCreditsReconcile;
|
||||
bool m_bPickExtraStage;
|
||||
bool m_bComboContinuesBetweenSongs;
|
||||
|
||||
@@ -160,12 +160,13 @@ bool Screen::ChangeCoinModeInput( const DeviceInput& DeviceI, const InputEventTy
|
||||
return false;
|
||||
if( DeviceI.device == DEVICE_KEYBOARD && DeviceI.button == SDLK_F3 )
|
||||
{
|
||||
(int&)PREFSMAN->m_iCoinMode = (PREFSMAN->m_iCoinMode+1) % NUM_COIN_MODES;
|
||||
PREFSMAN->m_iCoinMode++;
|
||||
wrap( PREFSMAN->m_iCoinMode, NUM_COIN_MODES );
|
||||
/* ResetGame();
|
||||
This causes problems on ScreenIntroMovie, which results in the
|
||||
movie being restarted and/or becoming out-of-synch -- Miryokuteki */
|
||||
|
||||
CString sMessage = CoinModeToString( (CoinMode)PREFSMAN->m_iCoinMode );
|
||||
CString sMessage = CoinModeToString( (CoinMode)PREFSMAN->GetCoinMode() );
|
||||
sMessage.MakeUpper();
|
||||
sMessage = "Coin Mode: " + sMessage;
|
||||
SCREENMAN->RefreshCreditsMessages();
|
||||
@@ -188,11 +189,11 @@ bool Screen::JoinInput( const DeviceInput& DeviceI, const InputEventType type, c
|
||||
|
||||
/* subtract coins */
|
||||
int iCoinsToCharge = 0;
|
||||
if( PREFSMAN->m_iCoinMode == COIN_PAY )
|
||||
if( PREFSMAN->GetCoinMode() == COIN_PAY )
|
||||
iCoinsToCharge = PREFSMAN->m_iCoinsPerCredit;
|
||||
|
||||
// If joint premium don't take away a credit for the 2nd join.
|
||||
if( PREFSMAN->m_Premium == PrefsManager::JOINT_PREMIUM &&
|
||||
if( PREFSMAN->GetPremium() == PrefsManager::JOINT_PREMIUM &&
|
||||
GAMESTATE->GetNumSidesJoined() == 1 )
|
||||
iCoinsToCharge = 0;
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ void ScreenAttract::AttractInput( const DeviceInput& DeviceI, const InputEventTy
|
||||
case MENU_BUTTON_START:
|
||||
case MENU_BUTTON_BACK:
|
||||
case MENU_BUTTON_COIN:
|
||||
switch( PREFSMAN->m_iCoinMode )
|
||||
switch( PREFSMAN->GetCoinMode() )
|
||||
{
|
||||
case COIN_PAY:
|
||||
LOG->Trace("ScreenAttract::AttractInput: COIN_PAY (%i/%i)", GAMESTATE->m_iCoins, PREFSMAN->m_iCoinsPerCredit );
|
||||
|
||||
@@ -215,7 +215,7 @@ void ScreenSystemLayer::RefreshCreditsMessages()
|
||||
}
|
||||
else
|
||||
{
|
||||
switch( PREFSMAN->m_iCoinMode )
|
||||
switch( PREFSMAN->GetCoinMode() )
|
||||
{
|
||||
case COIN_HOME:
|
||||
if( GAMESTATE->PlayersCanJoin() )
|
||||
|
||||
@@ -197,9 +197,9 @@ void ScreenSelectMode::UpdateSelectableChoices()
|
||||
(mc.m_style == STYLE_INVALID) ?
|
||||
1 :
|
||||
1;
|
||||
if( PREFSMAN->m_Premium!=PrefsManager::JOINT_PREMIUM ||
|
||||
if( PREFSMAN->GetPremium()!=PrefsManager::JOINT_PREMIUM ||
|
||||
(
|
||||
(PREFSMAN->m_Premium==PrefsManager::JOINT_PREMIUM) &&
|
||||
(PREFSMAN->GetPremium()==PrefsManager::JOINT_PREMIUM) &&
|
||||
(
|
||||
(INCLUDE_DOUBLE_IN_JP == 1 && (GAMESTATE->GetNumSidesJoined() == SidesJoinedToPlay)) ||
|
||||
(
|
||||
|
||||
@@ -100,7 +100,7 @@ ScreenSelectStyle::ScreenSelectStyle( CString sClassName ) : ScreenSelect( sClas
|
||||
|
||||
m_sprPremium.SetName( "Premium" );
|
||||
|
||||
switch( PREFSMAN->m_Premium )
|
||||
switch( PREFSMAN->GetPremium() )
|
||||
{
|
||||
case PrefsManager::DOUBLES_PREMIUM:
|
||||
m_sprPremium.Load( THEME->GetPathToG(m_sName + " doubles premium") );
|
||||
|
||||
@@ -55,7 +55,7 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
|
||||
|
||||
// Don't show screen title menu (says "Press Start")
|
||||
// if there are 0 credits and inserted and CoinMode is pay.
|
||||
if( PREFSMAN->m_iCoinMode == COIN_PAY &&
|
||||
if( PREFSMAN->GetCoinMode() == COIN_PAY &&
|
||||
GAMESTATE->m_iCoins < PREFSMAN->m_iCoinsPerCredit )
|
||||
{
|
||||
SCREENMAN->SetNewScreen( THEME->GetMetric("Common","InitialScreen") );
|
||||
@@ -72,12 +72,12 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
|
||||
|
||||
|
||||
m_sprLogo.Load( THEME->GetPathToG(ssprintf("ScreenLogo %s",GAMESTATE->GetCurrentGameDef()->m_szName)) );
|
||||
m_sprLogo.Command( PREFSMAN->m_iCoinMode==COIN_HOME ? LOGO_HOME_ON_COMMAND : LOGO_ON_COMMAND );
|
||||
m_sprLogo.Command( PREFSMAN->GetCoinMode()==COIN_HOME ? LOGO_HOME_ON_COMMAND : LOGO_ON_COMMAND );
|
||||
this->AddChild( &m_sprLogo );
|
||||
|
||||
if( PREFSMAN->m_iCoinMode != COIN_HOME )
|
||||
if( PREFSMAN->GetCoinMode() != COIN_HOME )
|
||||
{
|
||||
switch( PREFSMAN->m_Premium )
|
||||
switch( PREFSMAN->GetPremium() )
|
||||
{
|
||||
case PrefsManager::DOUBLES_PREMIUM:
|
||||
m_Premium.LoadFromAniDir( THEME->GetPathToB("ScreenTitleMenu doubles premium") );
|
||||
@@ -113,19 +113,19 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
|
||||
m_textMaxStages.SetText( sText );
|
||||
this->AddChild( &m_textMaxStages );
|
||||
|
||||
CString sCoinMode = CoinModeToString((CoinMode)PREFSMAN->m_iCoinMode);
|
||||
CString sCoinMode = CoinModeToString((CoinMode)PREFSMAN->GetCoinMode());
|
||||
m_CoinMode.LoadFromAniDir( THEME->GetPathToB("ScreenTitleMenu "+sCoinMode) );
|
||||
this->AddChild( &m_CoinMode );
|
||||
|
||||
m_textHelp.LoadFromFont( THEME->GetPathToF("ScreenTitleMenu help") );
|
||||
m_textHelp.SetText( HELP_TEXT((CoinMode)PREFSMAN->m_iCoinMode) );
|
||||
m_textHelp.SetText( HELP_TEXT((CoinMode)PREFSMAN->GetCoinMode()) );
|
||||
m_textHelp.SetXY( HELP_X, HELP_Y );
|
||||
m_textHelp.SetZoom( 0.5f );
|
||||
m_textHelp.SetEffectDiffuseBlink();
|
||||
m_textHelp.SetShadowLength( 2 );
|
||||
this->AddChild( &m_textHelp );
|
||||
|
||||
switch( PREFSMAN->m_iCoinMode )
|
||||
switch( PREFSMAN->GetCoinMode() )
|
||||
{
|
||||
case COIN_HOME:
|
||||
{
|
||||
@@ -195,7 +195,7 @@ void ScreenTitleMenu::UpdateSelectableChoices()
|
||||
|
||||
void ScreenTitleMenu::MoveCursor( bool up )
|
||||
{
|
||||
if( PREFSMAN->m_iCoinMode != COIN_HOME )
|
||||
if( PREFSMAN->GetCoinMode() != COIN_HOME )
|
||||
return;
|
||||
// if( m_BeginOut.IsTransitioning() )
|
||||
// return;
|
||||
@@ -308,7 +308,7 @@ void ScreenTitleMenu::Update( float fDelta )
|
||||
{
|
||||
// don't time out on this screen is coin mode is pay.
|
||||
// If we're here, then there's a credit in the machine.
|
||||
if( PREFSMAN->m_iCoinMode == COIN_PAY )
|
||||
if( PREFSMAN->GetCoinMode() == COIN_PAY )
|
||||
; // do nothing
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user