Use NoAttacks vs StepAttacks.
This commit is contained in:
@@ -19,6 +19,8 @@ StepMania 5.0 Preview 2 | 201106??
|
||||
* [ScreenEdit] Allow jumping between all segments, not just Label segments.
|
||||
You still use Ctrl + ,/. to jump, but now you use Ctrl + N/M to cycle the
|
||||
segments. By default, it starts with Label. [Wolfman2000]
|
||||
* [PlayerOptions] No longer display StepAttacks in the player's list.
|
||||
Instead, show NoAttacks if attacks are disabled. [Wolfman2000]
|
||||
|
||||
2011/06/24
|
||||
----------
|
||||
|
||||
@@ -2355,10 +2355,10 @@ Mines,3="mod,mines;name,Add"
|
||||
Mines,4="mod,attackmines;name,AttackMines"
|
||||
|
||||
Attacks="3"
|
||||
AttacksDefault="mod,stepattacks"
|
||||
Attacks,1="name,StepAttacks"
|
||||
AttacksDefault="mod,no randomattacks, no noattacks"
|
||||
Attacks,1="name,On"
|
||||
Attacks,2="mod,randomattacks;name,RandomAttacks"
|
||||
Attacks,3="mod,no randomattacks,no stepattacks;name,Off"
|
||||
Attacks,3="mod,noattacks;name,Off"
|
||||
|
||||
PlayerAutoPlay="2"
|
||||
PlayerAutoPlayDefault="mod,no playerautoplay"
|
||||
|
||||
+20
-8
@@ -37,7 +37,7 @@ void PlayerOptions::Init()
|
||||
m_fBlind = 0; m_SpeedfBlind = 1.0f;
|
||||
m_fCover = 0; m_SpeedfCover = 1.0f;
|
||||
m_fRandAttack = 0; m_SpeedfRandAttack = 1.0f;
|
||||
m_fStepAttack = 1; m_SpeedfStepAttack = 1.0f;
|
||||
m_fNoAttack = 0; m_SpeedfNoAttack = 1.0f;
|
||||
m_fPlayerAutoPlay = 0; m_SpeedfPlayerAutoPlay = 1.0f;
|
||||
m_bSetTiltOrSkew = false;
|
||||
m_fPerspectiveTilt = 0; m_SpeedfPerspectiveTilt = 1.0f;
|
||||
@@ -73,7 +73,7 @@ void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
|
||||
APPROACH( fBlind );
|
||||
APPROACH( fCover );
|
||||
APPROACH( fRandAttack );
|
||||
APPROACH( fStepAttack );
|
||||
APPROACH( fNoAttack );
|
||||
APPROACH( fPlayerAutoPlay );
|
||||
APPROACH( fPerspectiveTilt );
|
||||
APPROACH( fSkew );
|
||||
@@ -180,7 +180,7 @@ void PlayerOptions::GetMods( vector<RString> &AddTo, bool bForceNoteSkin ) const
|
||||
AddPart( AddTo, m_fCover, "Cover" );
|
||||
|
||||
AddPart( AddTo, m_fRandAttack, "RandomAttacks" );
|
||||
AddPart( AddTo, m_fStepAttack, "StepAttacks" );
|
||||
AddPart( AddTo, m_fNoAttack, "NoAttacks" );
|
||||
AddPart( AddTo, m_fPlayerAutoPlay, "PlayerAutoPlay" );
|
||||
|
||||
AddPart( AddTo, m_fPassmark, "Passmark" );
|
||||
@@ -417,7 +417,7 @@ bool PlayerOptions::FromOneModString( const RString &sOneMod, RString &sErrorOut
|
||||
else if( sBit == "blind" ) SET_FLOAT( fBlind )
|
||||
else if( sBit == "cover" ) SET_FLOAT( fCover )
|
||||
else if( sBit == "randomattacks" ) SET_FLOAT( fRandAttack )
|
||||
else if( sBit == "stepattacks" ) SET_FLOAT( fStepAttack )
|
||||
else if( sBit == "noattacks" ) SET_FLOAT( fNoAttack )
|
||||
else if( sBit == "playerautoplay" ) SET_FLOAT( fPlayerAutoPlay )
|
||||
else if( sBit == "passmark" ) SET_FLOAT( fPassmark )
|
||||
else if( sBit == "overhead" ) { m_bSetTiltOrSkew = true; m_fSkew = 0; m_fPerspectiveTilt = 0; m_SpeedfSkew = m_SpeedfPerspectiveTilt = speed; }
|
||||
@@ -657,7 +657,7 @@ bool PlayerOptions::operator==( const PlayerOptions &other ) const
|
||||
COMPARE(m_fBlind);
|
||||
COMPARE(m_fCover);
|
||||
COMPARE(m_fRandAttack);
|
||||
COMPARE(m_fStepAttack);
|
||||
COMPARE(m_fNoAttack);
|
||||
COMPARE(m_fPlayerAutoPlay);
|
||||
COMPARE(m_fPerspectiveTilt);
|
||||
COMPARE(m_fSkew);
|
||||
@@ -713,7 +713,7 @@ bool PlayerOptions::IsEasierForSongAndSteps( Song* pSong, Steps* pSteps, PlayerN
|
||||
if( m_bTransforms[TRANSFORM_ECHO] ) return true;
|
||||
|
||||
// Removing attacks is easier in general.
|
||||
if (!m_fStepAttack && !m_fRandAttack && pSteps->HasAttacks())
|
||||
if (m_fNoAttack || (!m_fRandAttack && pSteps->HasAttacks()))
|
||||
return true;
|
||||
|
||||
if( m_fCover ) return true;
|
||||
@@ -961,9 +961,20 @@ public:
|
||||
DEFINE_METHOD( GetBlind, m_fBlind )
|
||||
DEFINE_METHOD( GetCover, m_fCover )
|
||||
DEFINE_METHOD( GetRandomAttacks, m_fRandAttack )
|
||||
|
||||
static int GetStepAttacks( T *p, lua_State *L )
|
||||
{
|
||||
lua_pushnumber(L,
|
||||
(p->m_fNoAttack > 0 || p->m_fRandAttack > 0 ? 0 : 1 ));
|
||||
return 1;
|
||||
}
|
||||
|
||||
// This one is deprecated.
|
||||
DEFINE_METHOD( GetSongAttacks, m_fStepAttack )
|
||||
DEFINE_METHOD( GetStepAttacks, m_fStepAttack )
|
||||
static int GetSongAttacks( T *p, lua_State *L )
|
||||
{
|
||||
return GetStepAttacks(p, L);
|
||||
}
|
||||
DEFINE_METHOD( GetNoAttacks, m_fNoAttack )
|
||||
DEFINE_METHOD( GetSkew, m_fSkew )
|
||||
DEFINE_METHOD( GetPassmark, m_fPassmark )
|
||||
DEFINE_METHOD( GetRandomSpeed, m_fRandomSpeed )
|
||||
@@ -991,6 +1002,7 @@ public:
|
||||
ADD_METHOD( GetSongAttacks );
|
||||
// SetSongAttacks
|
||||
ADD_METHOD( GetStepAttacks );
|
||||
ADD_METHOD( GetNoAttacks );
|
||||
ADD_METHOD( GetCMod );
|
||||
ADD_METHOD( GetXMod );
|
||||
|
||||
|
||||
+2
-2
@@ -27,7 +27,7 @@ public:
|
||||
m_fBlind(0), m_SpeedfBlind(1.0f),
|
||||
m_fCover(0), m_SpeedfCover(1.0f),
|
||||
m_fRandAttack(0), m_SpeedfRandAttack(1.0f),
|
||||
m_fStepAttack(1), m_SpeedfStepAttack(1.0f),
|
||||
m_fNoAttack(0), m_SpeedfNoAttack(1.0f),
|
||||
m_fPlayerAutoPlay(0), m_SpeedfPlayerAutoPlay(1.0f),
|
||||
m_bSetTiltOrSkew(false),
|
||||
m_fPerspectiveTilt(0), m_SpeedfPerspectiveTilt(1.0f),
|
||||
@@ -167,7 +167,7 @@ public:
|
||||
float m_fBlind, m_SpeedfBlind;
|
||||
float m_fCover, m_SpeedfCover; // hide the background per-player--can't think of a good name
|
||||
float m_fRandAttack, m_SpeedfRandAttack;
|
||||
float m_fStepAttack, m_SpeedfStepAttack;
|
||||
float m_fNoAttack, m_SpeedfNoAttack;
|
||||
float m_fPlayerAutoPlay, m_SpeedfPlayerAutoPlay;
|
||||
bool m_bSetTiltOrSkew; // true if the tilt or skew was set by FromString
|
||||
float m_fPerspectiveTilt, m_SpeedfPerspectiveTilt; // -1 = near, 0 = overhead, +1 = space
|
||||
|
||||
+14
-11
@@ -4516,20 +4516,23 @@ void ScreenEdit::SetupCourseAttacks()
|
||||
FOREACH( Attack, Attacks, attack )
|
||||
GAMESTATE->m_pPlayerState[PLAYER_1]->LaunchAttack( *attack );
|
||||
}
|
||||
else if (GAMESTATE->m_pCurSong &&
|
||||
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.GetCurrent().m_fStepAttack != 0 )
|
||||
else
|
||||
{
|
||||
AttackArray &attacks = GAMESTATE->m_bIsUsingStepTiming ?
|
||||
GAMESTATE->m_pCurSteps[PLAYER_1]->m_Attacks :
|
||||
GAMESTATE->m_pCurSong->m_Attacks;
|
||||
|
||||
if (attacks.size() > 0)
|
||||
const PlayerOptions &p = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.GetCurrent();
|
||||
if (GAMESTATE->m_pCurSong && p.m_fNoAttack != 0 && p.m_fRandAttack != 0 )
|
||||
{
|
||||
FOREACH(Attack, attacks, attack)
|
||||
AttackArray &attacks = GAMESTATE->m_bIsUsingStepTiming ?
|
||||
GAMESTATE->m_pCurSteps[PLAYER_1]->m_Attacks :
|
||||
GAMESTATE->m_pCurSong->m_Attacks;
|
||||
|
||||
if (attacks.size() > 0)
|
||||
{
|
||||
float fBeat = GetAppropriateTiming().GetBeatFromElapsedTime(attack->fStartSecond);
|
||||
if (fBeat >= GetBeat())
|
||||
GAMESTATE->m_pPlayerState[PLAYER_1]->LaunchAttack( *attack );
|
||||
FOREACH(Attack, attacks, attack)
|
||||
{
|
||||
float fBeat = GetAppropriateTiming().GetBeatFromElapsedTime(attack->fStartSecond);
|
||||
if (fBeat >= GetBeat())
|
||||
GAMESTATE->m_pPlayerState[PLAYER_1]->LaunchAttack( *attack );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -820,9 +820,10 @@ void ScreenGameplay::InitSongQueues()
|
||||
{
|
||||
Steps *pSteps = GAMESTATE->m_pCurSteps[ pi->GetStepsAndTrailIndex() ];
|
||||
pi->m_vpStepsQueue.push_back( pSteps );
|
||||
|
||||
if( pi->GetPlayerState()->m_PlayerOptions.GetCurrent().m_fStepAttack != 0 &&
|
||||
pSteps->m_Attacks.size() > 0 )
|
||||
const PlayerOptions &p = pi->GetPlayerState()->m_PlayerOptions.GetCurrent();
|
||||
|
||||
if (p.m_fNoAttack == 0 && p.m_fRandAttack == 0 &&
|
||||
pSteps->m_Attacks.size() > 0 )
|
||||
{
|
||||
pi->m_asModifiersQueue.push_back( pSteps->m_Attacks );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user