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