Round 2 of this.
This commit is contained in:
+1
-2
@@ -1813,8 +1813,7 @@
|
|||||||
</Enum>
|
</Enum>
|
||||||
<Enum name='CoinMode'>
|
<Enum name='CoinMode'>
|
||||||
<EnumValue name=''CoinMode_Home'' value='0'/>
|
<EnumValue name=''CoinMode_Home'' value='0'/>
|
||||||
<EnumValue name=''CoinMode_Pay'' value='1'/>
|
<EnumValue name=''CoinMode_Free'' value='1'/>
|
||||||
<EnumValue name=''CoinMode_Free'' value='2'/>
|
|
||||||
</Enum>
|
</Enum>
|
||||||
<Enum name='CourseSortOrders'>
|
<Enum name='CourseSortOrders'>
|
||||||
<EnumValue name=''CourseSortOrders_Preferred'' value='0'/>
|
<EnumValue name=''CourseSortOrders_Preferred'' value='0'/>
|
||||||
|
|||||||
@@ -48,13 +48,7 @@ return Def.ActorFrame {
|
|||||||
LoadFont("_arial black 20px")..{
|
LoadFont("_arial black 20px")..{
|
||||||
InitCommand=cmd(xy,SCREEN_CENTER_X,SCREEN_HEIGHT-20;zoom,1;shadowlength,0;playcommand,"Text");
|
InitCommand=cmd(xy,SCREEN_CENTER_X,SCREEN_HEIGHT-20;zoom,1;shadowlength,0;playcommand,"Text");
|
||||||
TextCommand=function(self)
|
TextCommand=function(self)
|
||||||
if GAMESTATE:GetCoinMode() == 'CoinMode_Pay' then
|
if GAMESTATE:GetCoinMode() == 'CoinMode_Free' then
|
||||||
local Coins = GAMESTATE:GetCoins()
|
|
||||||
local CoinForCredit = GAMESTATE:GetCoinsNeededToJoin()
|
|
||||||
local Credits = math.floor(Coins/CoinForCredit)
|
|
||||||
local Remain = Coins % CoinForCredit
|
|
||||||
self:settext(string.format("CREDIT(S) %i[%i/%i]", Credits, Remain, CoinForCredit))
|
|
||||||
elseif GAMESTATE:GetCoinMode() == 'CoinMode_Free' then
|
|
||||||
self:settext("Free Play")
|
self:settext("Free Play")
|
||||||
else --homemode
|
else --homemode
|
||||||
self:settext("Home Mode");
|
self:settext("Home Mode");
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ function EvaluationNext()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function GameOverNext()
|
function GameOverNext()
|
||||||
if (GAMESTATE:GetCoinMode() == 'CoinMode_Pay' and GAMESTATE:GetCoins() > 0)
|
if GAMESTATE:GetCoinMode() == 'CoinMode_Free'
|
||||||
or GAMESTATE:GetCoinMode() == 'CoinMode_Free'
|
|
||||||
then
|
then
|
||||||
return "ScreenTitleMenu"
|
return "ScreenTitleMenu"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -520,23 +520,6 @@ bool GameCommand::IsPlayable( RString *why ) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If you've paid too much already, don't allow the mode. (If we allow this,
|
|
||||||
* the credits will be "refunded" in Apply(), but that's confusing.) */
|
|
||||||
/* Do allow the mode if they've already joined in more credits than
|
|
||||||
* are required. Otherwise, people who put in two credits to play
|
|
||||||
* doubles on a doubles-premium machiune will get locked out.
|
|
||||||
* the refund logic isn't that awkward because you never see the
|
|
||||||
* credits number jump up - the credits display is hidden if both
|
|
||||||
* sides are joined. -Chris */
|
|
||||||
/*
|
|
||||||
if( PREFSMAN->m_iCoinMode == COIN_PAY && iNumCreditsPaid > iNumCreditsRequired )
|
|
||||||
{
|
|
||||||
if( why )
|
|
||||||
*why = ssprintf( "too many credits paid (%i > %i)", iNumCreditsPaid, iNumCreditsRequired );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* If both sides are joined, disallow singles modes, since easy to select
|
/* If both sides are joined, disallow singles modes, since easy to select
|
||||||
* them accidentally, instead of versus mode. */
|
* them accidentally, instead of versus mode. */
|
||||||
if( m_pStyle->m_StyleType == StyleType_OnePlayerOneSide &&
|
if( m_pStyle->m_StyleType == StyleType_OnePlayerOneSide &&
|
||||||
@@ -662,19 +645,6 @@ void GameCommand::ApplySelf( const vector<PlayerNumber> &vpns ) const
|
|||||||
{
|
{
|
||||||
GAMESTATE->SetCurrentStyle( m_pStyle );
|
GAMESTATE->SetCurrentStyle( m_pStyle );
|
||||||
|
|
||||||
// It's possible to choose a style that didn't have enough players joined.
|
|
||||||
// If enough players aren't joined, then we need to subtract credits
|
|
||||||
// for the sides that will be joined as a result of applying this option.
|
|
||||||
if( GAMESTATE->GetCoinMode() == CoinMode_Pay )
|
|
||||||
{
|
|
||||||
int iNumCreditsRequired = GetCreditsRequiredToPlayStyle(m_pStyle);
|
|
||||||
int iNumCreditsPaid = GetNumCreditsPaid();
|
|
||||||
int iNumCreditsOwed = iNumCreditsRequired - iNumCreditsPaid;
|
|
||||||
GAMESTATE->m_iCoins.Set( GAMESTATE->m_iCoins - iNumCreditsOwed * PREFSMAN->m_iCoinsPerCredit );
|
|
||||||
LOG->Trace( "Deducted %i coins, %i remaining",
|
|
||||||
iNumCreditsOwed * PREFSMAN->m_iCoinsPerCredit, GAMESTATE->m_iCoins.Get() );
|
|
||||||
}
|
|
||||||
|
|
||||||
// If only one side is joined and we picked a style that requires both
|
// If only one side is joined and we picked a style that requires both
|
||||||
// sides, join the other side.
|
// sides, join the other side.
|
||||||
switch( m_pStyle->m_StyleType )
|
switch( m_pStyle->m_StyleType )
|
||||||
|
|||||||
@@ -134,7 +134,6 @@ LuaXType( StageResult );
|
|||||||
|
|
||||||
static const char *CoinModeNames[] = {
|
static const char *CoinModeNames[] = {
|
||||||
"Home",
|
"Home",
|
||||||
"Pay",
|
|
||||||
"Free",
|
"Free",
|
||||||
};
|
};
|
||||||
XToString( CoinMode );
|
XToString( CoinMode );
|
||||||
|
|||||||
@@ -432,7 +432,6 @@ const int ITEM_NONE = -1;
|
|||||||
enum CoinMode
|
enum CoinMode
|
||||||
{
|
{
|
||||||
CoinMode_Home, /**< The full range of options are available. */
|
CoinMode_Home, /**< The full range of options are available. */
|
||||||
CoinMode_Pay, /**< Coins must be inserted before a game can begin. */
|
|
||||||
CoinMode_Free, /**< It costs no money to play, but otherwise is similar to Pay mode. */
|
CoinMode_Free, /**< It costs no money to play, but otherwise is similar to Pay mode. */
|
||||||
NUM_CoinMode,
|
NUM_CoinMode,
|
||||||
CoinMode_Invalid
|
CoinMode_Invalid
|
||||||
|
|||||||
@@ -361,12 +361,6 @@ void GameState::Reset()
|
|||||||
|
|
||||||
void GameState::JoinPlayer( PlayerNumber pn )
|
void GameState::JoinPlayer( PlayerNumber pn )
|
||||||
{
|
{
|
||||||
/* If joint premium and we're not taking away a credit for the 2nd join,
|
|
||||||
* give the new player the same number of stage tokens that the old player
|
|
||||||
* has. */
|
|
||||||
if( GetCoinMode() == CoinMode_Pay && GetPremium() == Premium_2PlayersFor1Credit && GetNumSidesJoined() == 1 )
|
|
||||||
m_iPlayerStageTokens[pn] = m_iPlayerStageTokens[this->GetMasterPlayerNumber()];
|
|
||||||
else
|
|
||||||
m_iPlayerStageTokens[pn] = PREFSMAN->m_iSongsPerPlay;
|
m_iPlayerStageTokens[pn] = PREFSMAN->m_iSongsPerPlay;
|
||||||
|
|
||||||
m_bSideIsJoined[pn] = true;
|
m_bSideIsJoined[pn] = true;
|
||||||
@@ -491,9 +485,6 @@ int GameState::GetCoinsNeededToJoin() const
|
|||||||
{
|
{
|
||||||
int iCoinsToCharge = 0;
|
int iCoinsToCharge = 0;
|
||||||
|
|
||||||
if( GetCoinMode() == CoinMode_Pay )
|
|
||||||
iCoinsToCharge = PREFSMAN->m_iCoinsPerCredit;
|
|
||||||
|
|
||||||
// If joint premium, don't take away a credit for the second join.
|
// If joint premium, don't take away a credit for the second join.
|
||||||
if( GetPremium() == Premium_2PlayersFor1Credit &&
|
if( GetPremium() == Premium_2PlayersFor1Credit &&
|
||||||
GetNumSidesJoined() == 1 )
|
GetNumSidesJoined() == 1 )
|
||||||
@@ -2055,9 +2046,6 @@ bool GameState::IsEventMode() const
|
|||||||
|
|
||||||
CoinMode GameState::GetCoinMode() const
|
CoinMode GameState::GetCoinMode() const
|
||||||
{
|
{
|
||||||
if( IsEventMode() && GamePreferences::m_CoinMode == CoinMode_Pay )
|
|
||||||
return CoinMode_Free;
|
|
||||||
else
|
|
||||||
return GamePreferences::m_CoinMode;
|
return GamePreferences::m_CoinMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,14 +85,6 @@ bool ScreenAttract::AttractInput( const InputEventPlus &input, ScreenWithMenuEle
|
|||||||
case GAME_BUTTON_COIN:
|
case GAME_BUTTON_COIN:
|
||||||
switch( GAMESTATE->GetCoinMode() )
|
switch( GAMESTATE->GetCoinMode() )
|
||||||
{
|
{
|
||||||
case CoinMode_Pay:
|
|
||||||
LOG->Trace("ScreenAttract::AttractInput: COIN_PAY (%i/%i, %i)",
|
|
||||||
GAMESTATE->m_iCoins.Get(),
|
|
||||||
PREFSMAN->m_iCoinsPerCredit.Get(),
|
|
||||||
GAMESTATE->GetNumSidesJoined() );
|
|
||||||
if( GAMESTATE->m_iCoins < PREFSMAN->m_iCoinsPerCredit && GAMESTATE->GetNumSidesJoined() == 0 )
|
|
||||||
return true;
|
|
||||||
// fall through
|
|
||||||
case CoinMode_Home:
|
case CoinMode_Home:
|
||||||
case CoinMode_Free:
|
case CoinMode_Free:
|
||||||
if( pScreen->IsTransitioning() )
|
if( pScreen->IsTransitioning() )
|
||||||
|
|||||||
@@ -106,20 +106,6 @@ namespace
|
|||||||
else
|
else
|
||||||
return CREDITS_NOT_PRESENT.GetValue();
|
return CREDITS_NOT_PRESENT.GetValue();
|
||||||
|
|
||||||
case CoinMode_Pay:
|
|
||||||
{
|
|
||||||
int iCredits = GAMESTATE->m_iCoins / PREFSMAN->m_iCoinsPerCredit;
|
|
||||||
int iCoins = GAMESTATE->m_iCoins % PREFSMAN->m_iCoinsPerCredit;
|
|
||||||
RString sCredits = CREDITS_CREDITS;
|
|
||||||
// todo: allow themers to change these strings -aj
|
|
||||||
if( iCredits > 0 || PREFSMAN->m_iCoinsPerCredit == 1 )
|
|
||||||
sCredits += ssprintf(" %d", iCredits);
|
|
||||||
if( PREFSMAN->m_iCoinsPerCredit > 1 )
|
|
||||||
sCredits += ssprintf(" %d/%d", iCoins, PREFSMAN->m_iCoinsPerCredit.Get() );
|
|
||||||
if( iCredits >= MAX_NUM_CREDITS )
|
|
||||||
sCredits += " " + CREDITS_MAX.GetValue();
|
|
||||||
return sCredits;
|
|
||||||
}
|
|
||||||
case CoinMode_Free:
|
case CoinMode_Free:
|
||||||
if( GAMESTATE->PlayersCanJoin() )
|
if( GAMESTATE->PlayersCanJoin() )
|
||||||
return CREDITS_FREE_PLAY.GetValue();
|
return CREDITS_FREE_PLAY.GetValue();
|
||||||
|
|||||||
@@ -134,14 +134,6 @@ void ScreenWithMenuElements::BeginScreen()
|
|||||||
|
|
||||||
/* Evaluate FirstUpdateCommand. */
|
/* Evaluate FirstUpdateCommand. */
|
||||||
this->PlayCommand( "FirstUpdate" );
|
this->PlayCommand( "FirstUpdate" );
|
||||||
|
|
||||||
/* If AutoJoin and a player is already joined, then try to join a player. (If no players
|
|
||||||
* are joined, they'll join on the first JoinInput.) */
|
|
||||||
if( GAMESTATE->GetCoinMode() == CoinMode_Pay && GAMESTATE->m_bAutoJoin.Get() )
|
|
||||||
{
|
|
||||||
if( GAMESTATE->GetNumSidesJoined() > 0 && GAMESTATE->JoinPlayers() )
|
|
||||||
SCREENMAN->PlayStartSound();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenWithMenuElements::HandleScreenMessage( const ScreenMessage SM )
|
void ScreenWithMenuElements::HandleScreenMessage( const ScreenMessage SM )
|
||||||
|
|||||||
Reference in New Issue
Block a user