working on AttackDisplay
This commit is contained in:
@@ -1971,8 +1971,8 @@ ComboYReverse=210
|
|||||||
AttackDisplayXOffsetOneSideP1=0
|
AttackDisplayXOffsetOneSideP1=0
|
||||||
AttackDisplayXOffsetOneSideP2=0
|
AttackDisplayXOffsetOneSideP2=0
|
||||||
AttackDisplayXOffsetBothSides=0
|
AttackDisplayXOffsetBothSides=0
|
||||||
AttackDisplayY=190
|
AttackDisplayY=170
|
||||||
AttackDisplayYReverse=290
|
AttackDisplayYReverse=310
|
||||||
HoldJudgmentYStandard=150
|
HoldJudgmentYStandard=150
|
||||||
HoldJudgmentYReverse=330
|
HoldJudgmentYReverse=330
|
||||||
BrightGhostComboThreshold=100
|
BrightGhostComboThreshold=100
|
||||||
@@ -3345,3 +3345,7 @@ MeterP1OnCommand=rotationz,-90
|
|||||||
MeterP2OnCommand=rotationz,-90
|
MeterP2OnCommand=rotationz,-90
|
||||||
LevelP1OnCommand=addy,-140
|
LevelP1OnCommand=addy,-140
|
||||||
LevelP2OnCommand=addy,-140
|
LevelP2OnCommand=addy,-140
|
||||||
|
|
||||||
|
[AttackDisplay]
|
||||||
|
TextP1OnCommand=diffusealpha,0;linear,0.5;diffusealpha,1;sleep,2;linear,0.5;diffusealpha,0
|
||||||
|
TextP2OnCommand=diffusealpha,0;linear,0.5;diffusealpha,1;sleep,2;linear,0.5;diffusealpha,0
|
||||||
@@ -14,6 +14,8 @@
|
|||||||
#include "ThemeManager.h"
|
#include "ThemeManager.h"
|
||||||
#include "GameState.h"
|
#include "GameState.h"
|
||||||
|
|
||||||
|
#define TEXT_ON_COMMAND( p ) THEME->GetMetric("AttackDisplay",ssprintf("TextP%dOnCommand",p+1))
|
||||||
|
|
||||||
|
|
||||||
AttackDisplay::AttackDisplay()
|
AttackDisplay::AttackDisplay()
|
||||||
{
|
{
|
||||||
@@ -27,13 +29,30 @@ void AttackDisplay::Update( float fDelta )
|
|||||||
ActorFrame::Update( fDelta );
|
ActorFrame::Update( fDelta );
|
||||||
|
|
||||||
// FIXME: Make GAMESTATE->m_ActiveAttacks a vector
|
// FIXME: Make GAMESTATE->m_ActiveAttacks a vector
|
||||||
if( !GAMESTATE->m_ActiveAttacks[m_PlayerNumber][0].IsBlank() )
|
if( GAMESTATE->m_bAttackBeganThisUpdate[m_PlayerNumber] )
|
||||||
{
|
{
|
||||||
|
// don't handle this again
|
||||||
|
GAMESTATE->m_bAttackBeganThisUpdate[m_PlayerNumber] = false;
|
||||||
|
|
||||||
|
int s;
|
||||||
|
for( s=0; s<GameState::MAX_SIMULTANEOUS_ATTACKS; s++ )
|
||||||
|
{
|
||||||
|
if( GAMESTATE->m_ActiveAttacks[m_PlayerNumber][s].fStartSecond >= 0 )
|
||||||
|
continue; /* hasn't started yet */
|
||||||
|
|
||||||
|
if( GAMESTATE->m_ActiveAttacks[m_PlayerNumber][s].fSecsRemaining <= 0 )
|
||||||
|
continue; /* ended already */
|
||||||
|
|
||||||
|
if( GAMESTATE->m_ActiveAttacks[m_PlayerNumber][s].IsBlank() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString sText = GAMESTATE->m_ActiveAttacks[m_PlayerNumber][s].sModifier;
|
||||||
|
|
||||||
m_textAttack.SetDiffuseAlpha( 1 );
|
m_textAttack.SetDiffuseAlpha( 1 );
|
||||||
m_textAttack.SetText( GAMESTATE->m_ActiveAttacks[m_PlayerNumber][0].sModifier );
|
m_textAttack.SetText( sText );
|
||||||
}
|
m_textAttack.Command( TEXT_ON_COMMAND(m_PlayerNumber) );
|
||||||
else
|
|
||||||
{
|
|
||||||
m_textAttack.SetDiffuseAlpha( 0 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -171,7 +171,7 @@ void GameState::Update( float fDelta )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* See if any attacks are ending. */
|
/* See if any attacks are ending. */
|
||||||
m_bActiveAttackEndedThisUpdate[p] = false;
|
m_bAttackEndedThisUpdate[p] = false;
|
||||||
|
|
||||||
for( s=0; s<MAX_SIMULTANEOUS_ATTACKS; s++ )
|
for( s=0; s<MAX_SIMULTANEOUS_ATTACKS; s++ )
|
||||||
{
|
{
|
||||||
@@ -189,7 +189,7 @@ void GameState::Update( float fDelta )
|
|||||||
/* ending */
|
/* ending */
|
||||||
m_ActiveAttacks[p][s].fSecsRemaining = 0;
|
m_ActiveAttacks[p][s].fSecsRemaining = 0;
|
||||||
m_ActiveAttacks[p][s].sModifier = "";
|
m_ActiveAttacks[p][s].sModifier = "";
|
||||||
m_bActiveAttackEndedThisUpdate[p] = true;
|
m_bAttackEndedThisUpdate[p] = true;
|
||||||
RebuildPlayerOptions = true;
|
RebuildPlayerOptions = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -691,6 +691,8 @@ void GameState::LaunchAttack( PlayerNumber target, Attack a )
|
|||||||
{
|
{
|
||||||
LOG->Trace( "Launch attack '%s' against P%d at %f", a.sModifier.c_str(), target+1, a.fStartSecond );
|
LOG->Trace( "Launch attack '%s' against P%d at %f", a.sModifier.c_str(), target+1, a.fStartSecond );
|
||||||
|
|
||||||
|
m_bAttackBeganThisUpdate[target] = true;
|
||||||
|
|
||||||
// search for an open slot
|
// search for an open slot
|
||||||
for( int s=0; s<MAX_SIMULTANEOUS_ATTACKS; s++ )
|
for( int s=0; s<MAX_SIMULTANEOUS_ATTACKS; s++ )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -178,7 +178,8 @@ public:
|
|||||||
float m_fTugLifePercentP1;
|
float m_fTugLifePercentP1;
|
||||||
float m_fSuperMeter[NUM_PLAYERS]; // between 0 and NUM_ATTACK_LEVELS
|
float m_fSuperMeter[NUM_PLAYERS]; // between 0 and NUM_ATTACK_LEVELS
|
||||||
|
|
||||||
bool m_bActiveAttackEndedThisUpdate[NUM_PLAYERS]; // flag for other objects to watch (play sounds)
|
bool m_bAttackBeganThisUpdate[NUM_PLAYERS]; // flag for other objects to watch (play sounds)
|
||||||
|
bool m_bAttackEndedThisUpdate[NUM_PLAYERS]; // flag for other objects to watch (play sounds)
|
||||||
void GetUndisplayedBeats( PlayerNumber pn, float TotalSeconds, float &StartBeat, float &EndBeat ); // only meaningful when a NoteField is in use
|
void GetUndisplayedBeats( PlayerNumber pn, float TotalSeconds, float &StartBeat, float &EndBeat ); // only meaningful when a NoteField is in use
|
||||||
void LaunchAttack( PlayerNumber target, Attack aa );
|
void LaunchAttack( PlayerNumber target, Attack aa );
|
||||||
void RebuildPlayerOptionsFromActiveAttacks( PlayerNumber pn );
|
void RebuildPlayerOptionsFromActiveAttacks( PlayerNumber pn );
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ void Inventory::Load( PlayerNumber pn )
|
|||||||
|
|
||||||
void Inventory::Update( float fDelta )
|
void Inventory::Update( float fDelta )
|
||||||
{
|
{
|
||||||
if( GAMESTATE->m_bActiveAttackEndedThisUpdate[m_PlayerNumber] )
|
if( GAMESTATE->m_bAttackEndedThisUpdate[m_PlayerNumber] )
|
||||||
m_soundItemEnding.Play();
|
m_soundItemEnding.Play();
|
||||||
|
|
||||||
PlayerNumber pn = m_PlayerNumber;
|
PlayerNumber pn = m_PlayerNumber;
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ void PlayerMinus::Update( float fDeltaTime )
|
|||||||
if( GAMESTATE->m_pCurSong==NULL )
|
if( GAMESTATE->m_pCurSong==NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( GAMESTATE->m_bActiveAttackEndedThisUpdate[m_PlayerNumber] )
|
if( GAMESTATE->m_bAttackEndedThisUpdate[m_PlayerNumber] )
|
||||||
m_soundAttackEnding.Play();
|
m_soundAttackEnding.Play();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ void ScoreKeeperRave::HandleHoldScore( HoldNoteScore holdScore, TapNoteScore tap
|
|||||||
|
|
||||||
void ScoreKeeperRave::Update( float fDelta )
|
void ScoreKeeperRave::Update( float fDelta )
|
||||||
{
|
{
|
||||||
if( GAMESTATE->m_bActiveAttackEndedThisUpdate[m_PlayerNumber] )
|
if( GAMESTATE->m_bAttackEndedThisUpdate[m_PlayerNumber] )
|
||||||
m_soundAttackEnding.Play();
|
m_soundAttackEnding.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user