working on AttackDisplay

This commit is contained in:
Chris Danford
2003-11-27 02:30:54 +00:00
parent d5a859f877
commit 8ca12364bd
7 changed files with 40 additions and 14 deletions
+6 -2
View File
@@ -1971,8 +1971,8 @@ ComboYReverse=210
AttackDisplayXOffsetOneSideP1=0
AttackDisplayXOffsetOneSideP2=0
AttackDisplayXOffsetBothSides=0
AttackDisplayY=190
AttackDisplayYReverse=290
AttackDisplayY=170
AttackDisplayYReverse=310
HoldJudgmentYStandard=150
HoldJudgmentYReverse=330
BrightGhostComboThreshold=100
@@ -3345,3 +3345,7 @@ MeterP1OnCommand=rotationz,-90
MeterP2OnCommand=rotationz,-90
LevelP1OnCommand=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
+25 -6
View File
@@ -14,6 +14,8 @@
#include "ThemeManager.h"
#include "GameState.h"
#define TEXT_ON_COMMAND( p ) THEME->GetMetric("AttackDisplay",ssprintf("TextP%dOnCommand",p+1))
AttackDisplay::AttackDisplay()
{
@@ -27,13 +29,30 @@ void AttackDisplay::Update( float fDelta )
ActorFrame::Update( fDelta );
// 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.SetText( GAMESTATE->m_ActiveAttacks[m_PlayerNumber][0].sModifier );
}
else
{
m_textAttack.SetDiffuseAlpha( 0 );
m_textAttack.SetText( sText );
m_textAttack.Command( TEXT_ON_COMMAND(m_PlayerNumber) );
}
}
+4 -2
View File
@@ -171,7 +171,7 @@ void GameState::Update( float fDelta )
}
/* See if any attacks are ending. */
m_bActiveAttackEndedThisUpdate[p] = false;
m_bAttackEndedThisUpdate[p] = false;
for( s=0; s<MAX_SIMULTANEOUS_ATTACKS; s++ )
{
@@ -189,7 +189,7 @@ void GameState::Update( float fDelta )
/* ending */
m_ActiveAttacks[p][s].fSecsRemaining = 0;
m_ActiveAttacks[p][s].sModifier = "";
m_bActiveAttackEndedThisUpdate[p] = true;
m_bAttackEndedThisUpdate[p] = 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 );
m_bAttackBeganThisUpdate[target] = true;
// search for an open slot
for( int s=0; s<MAX_SIMULTANEOUS_ATTACKS; s++ )
{
+2 -1
View File
@@ -178,7 +178,8 @@ public:
float m_fTugLifePercentP1;
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 LaunchAttack( PlayerNumber target, Attack aa );
void RebuildPlayerOptionsFromActiveAttacks( PlayerNumber pn );
+1 -1
View File
@@ -98,7 +98,7 @@ void Inventory::Load( PlayerNumber pn )
void Inventory::Update( float fDelta )
{
if( GAMESTATE->m_bActiveAttackEndedThisUpdate[m_PlayerNumber] )
if( GAMESTATE->m_bAttackEndedThisUpdate[m_PlayerNumber] )
m_soundItemEnding.Play();
PlayerNumber pn = m_PlayerNumber;
+1 -1
View File
@@ -232,7 +232,7 @@ void PlayerMinus::Update( float fDeltaTime )
if( GAMESTATE->m_pCurSong==NULL )
return;
if( GAMESTATE->m_bActiveAttackEndedThisUpdate[m_PlayerNumber] )
if( GAMESTATE->m_bAttackEndedThisUpdate[m_PlayerNumber] )
m_soundAttackEnding.Play();
+1 -1
View File
@@ -71,7 +71,7 @@ void ScoreKeeperRave::HandleHoldScore( HoldNoteScore holdScore, TapNoteScore tap
void ScoreKeeperRave::Update( float fDelta )
{
if( GAMESTATE->m_bActiveAttackEndedThisUpdate[m_PlayerNumber] )
if( GAMESTATE->m_bAttackEndedThisUpdate[m_PlayerNumber] )
m_soundAttackEnding.Play();
}