add AttackDisplay

This commit is contained in:
Chris Danford
2003-11-26 08:25:45 +00:00
parent 3ac6473787
commit 719f92e773
9 changed files with 150 additions and 31 deletions
+5
View File
@@ -1968,6 +1968,11 @@ ComboXOffsetOneSideP2=0
ComboXOffsetBothSides=0 ComboXOffsetBothSides=0
ComboY=270 ComboY=270
ComboYReverse=210 ComboYReverse=210
AttackDisplayXOffsetOneSideP1=0
AttackDisplayXOffsetOneSideP2=0
AttackDisplayXOffsetBothSides=0
AttackDisplayY=190
AttackDisplayYReverse=290
HoldJudgmentYStandard=150 HoldJudgmentYStandard=150
HoldJudgmentYReverse=330 HoldJudgmentYReverse=330
BrightGhostComboThreshold=100 BrightGhostComboThreshold=100
+39
View File
@@ -0,0 +1,39 @@
#include "global.h"
/*
-----------------------------------------------------------------------------
Class: AttackDisplay
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "AttackDisplay.h"
#include "ThemeManager.h"
#include "GameState.h"
AttackDisplay::AttackDisplay()
{
m_textAttack.LoadFromFont( THEME->GetPathToF("AttackDisplay") );
m_textAttack.SetDiffuseAlpha( 0 ); // invisible
this->AddChild( &m_textAttack );
}
void AttackDisplay::Update( float fDelta )
{
ActorFrame::Update( fDelta );
// FIXME: Make GAMESTATE->m_ActiveAttacks a vector
if( !GAMESTATE->m_ActiveAttacks[m_PlayerNumber][0].IsBlank() )
{
m_textAttack.SetDiffuseAlpha( 1 );
m_textAttack.SetText( GAMESTATE->m_ActiveAttacks[m_PlayerNumber][0].sModifier );
}
else
{
m_textAttack.SetDiffuseAlpha( 0 );
}
}
+36
View File
@@ -0,0 +1,36 @@
#ifndef AttackDisplay_H
#define AttackDisplay_H
/*
-----------------------------------------------------------------------------
Class: AttackDisplay
Desc:
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ActorFrame.h"
#include "Sprite.h"
#include "BitmapText.h"
#include "PlayerNumber.h"
#include "GameConstantsAndTypes.h" // for TapNoteScore
class AttackDisplay : public ActorFrame
{
public:
AttackDisplay();
void Init( PlayerNumber pn ) { m_PlayerNumber = pn; }
virtual void Update( float fDelta );
protected:
PlayerNumber m_PlayerNumber;
BitmapText m_textAttack;
};
#endif
-1
View File
@@ -16,7 +16,6 @@
#include "BitmapText.h" #include "BitmapText.h"
#include "PlayerNumber.h" #include "PlayerNumber.h"
#include "GameConstantsAndTypes.h" // for TapNoteScore #include "GameConstantsAndTypes.h" // for TapNoteScore
class Inventory;
class Combo : public ActorFrame class Combo : public ActorFrame
+1 -1
View File
@@ -44,7 +44,7 @@ struct NoteFieldMode
float m_fFirstPixelToDrawScale, m_fLastPixelToDrawScale; float m_fFirstPixelToDrawScale, m_fLastPixelToDrawScale;
CString m_Backdrop; CString m_Backdrop;
CString m_JudgmentCmd, m_ComboCmd; CString m_JudgmentCmd, m_ComboCmd, m_AttackDisplayCmd;
CString m_HoldJudgmentCmd[MAX_NOTE_TRACKS]; CString m_HoldJudgmentCmd[MAX_NOTE_TRACKS];
}; };
+10
View File
@@ -43,6 +43,9 @@ CachedThemeMetricF GRAY_ARROWS_Y_REVERSE ("Player","GrayArrowsYReverse");
#define COMBO_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "ComboXOffsetBothSides" : ssprintf("ComboXOffsetOneSideP%d",p+1)) #define COMBO_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "ComboXOffsetBothSides" : ssprintf("ComboXOffsetOneSideP%d",p+1))
#define COMBO_Y THEME->GetMetricF("Player","ComboY") #define COMBO_Y THEME->GetMetricF("Player","ComboY")
#define COMBO_Y_REVERSE THEME->GetMetricF("Player","ComboYReverse") #define COMBO_Y_REVERSE THEME->GetMetricF("Player","ComboYReverse")
#define ATTACK_DISPLAY_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "AttackDisplayXOffsetBothSides" : ssprintf("AttackDisplayXOffsetOneSideP%d",p+1))
#define ATTACK_DISPLAY_Y THEME->GetMetricF("Player","AttackDisplayY")
#define ATTACK_DISPLAY_Y_REVERSE THEME->GetMetricF("Player","AttackDisplayYReverse")
CachedThemeMetricF HOLD_JUDGMENT_Y_STANDARD ("Player","HoldJudgmentYStandard"); CachedThemeMetricF HOLD_JUDGMENT_Y_STANDARD ("Player","HoldJudgmentYStandard");
CachedThemeMetricF HOLD_JUDGMENT_Y_REVERSE ("Player","HoldJudgmentYReverse"); CachedThemeMetricF HOLD_JUDGMENT_Y_REVERSE ("Player","HoldJudgmentYReverse");
CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold"); CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold");
@@ -85,6 +88,7 @@ PlayerMinus::PlayerMinus()
this->AddChild( &m_Judgment ); this->AddChild( &m_Judgment );
this->AddChild( &m_ProTimingDisplay ); this->AddChild( &m_ProTimingDisplay );
this->AddChild( &m_Combo ); this->AddChild( &m_Combo );
this->AddChild( &m_AttackDisplay );
for( int c=0; c<MAX_NOTE_TRACKS; c++ ) for( int c=0; c<MAX_NOTE_TRACKS; c++ )
this->AddChild( &m_HoldJudgment[c] ); this->AddChild( &m_HoldJudgment[c] );
@@ -134,6 +138,7 @@ void PlayerMinus::Load( PlayerNumber pn, const NoteData* pNoteData, LifeMeter* p
m_Judgment.StopTweening(); m_Judgment.StopTweening();
// m_Combo.Reset(); // don't reset combos between songs in a course! // m_Combo.Reset(); // don't reset combos between songs in a course!
m_Combo.Init( pn ); m_Combo.Init( pn );
m_AttackDisplay.Init( pn );
m_Judgment.Reset(); m_Judgment.Reset();
/* Don't re-init this; that'll reload graphics. Add a separate Reset() call /* Don't re-init this; that'll reload graphics. Add a separate Reset() call
@@ -192,6 +197,8 @@ void PlayerMinus::Load( PlayerNumber pn, const NoteData* pNoteData, LifeMeter* p
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyleDef()->m_StyleType==StyleDef::ONE_PLAYER_TWO_CREDITS; bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyleDef()->m_StyleType==StyleDef::ONE_PLAYER_TWO_CREDITS;
m_Combo.SetX( COMBO_X(m_PlayerNumber,bPlayerUsingBothSides) ); m_Combo.SetX( COMBO_X(m_PlayerNumber,bPlayerUsingBothSides) );
m_Combo.SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y ); m_Combo.SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y );
m_AttackDisplay.SetX( ATTACK_DISPLAY_X(m_PlayerNumber,bPlayerUsingBothSides) );
m_AttackDisplay.SetY( bReverse ? ATTACK_DISPLAY_Y_REVERSE : ATTACK_DISPLAY_Y );
m_Judgment.SetX( JUDGMENT_X(m_PlayerNumber,bPlayerUsingBothSides) ); m_Judgment.SetX( JUDGMENT_X(m_PlayerNumber,bPlayerUsingBothSides) );
m_Judgment.SetY( bReverse ? JUDGMENT_Y_REVERSE : JUDGMENT_Y ); m_Judgment.SetY( bReverse ? JUDGMENT_Y_REVERSE : JUDGMENT_Y );
m_ProTimingDisplay.SetX( JUDGMENT_X(m_PlayerNumber,bPlayerUsingBothSides) ); m_ProTimingDisplay.SetX( JUDGMENT_X(m_PlayerNumber,bPlayerUsingBothSides) );
@@ -201,6 +208,7 @@ void PlayerMinus::Load( PlayerNumber pn, const NoteData* pNoteData, LifeMeter* p
m_Judgment.Command( g_NoteFieldMode[pn].m_JudgmentCmd ); m_Judgment.Command( g_NoteFieldMode[pn].m_JudgmentCmd );
m_ProTimingDisplay.Command( g_NoteFieldMode[pn].m_JudgmentCmd ); m_ProTimingDisplay.Command( g_NoteFieldMode[pn].m_JudgmentCmd );
m_Combo.Command( g_NoteFieldMode[pn].m_ComboCmd ); m_Combo.Command( g_NoteFieldMode[pn].m_ComboCmd );
m_AttackDisplay.Command( g_NoteFieldMode[pn].m_AttackDisplayCmd );
int c; int c;
for( c=0; c<pStyleDef->m_iColsPerPlayer; c++ ) for( c=0; c<pStyleDef->m_iColsPerPlayer; c++ )
@@ -434,6 +442,8 @@ void PlayerMinus::DrawPrimitives()
if( GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_fBlind == 0 ) if( GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_fBlind == 0 )
m_Combo.Draw(); m_Combo.Draw();
m_AttackDisplay.Draw();
if( TAP_JUDGMENTS_UNDER_FIELD ) if( TAP_JUDGMENTS_UNDER_FIELD )
DrawTapJudgments(); DrawTapJudgments();
+3
View File
@@ -28,6 +28,7 @@
#include "ProTimingDisplay.h" #include "ProTimingDisplay.h"
#include "RageSound.h" #include "RageSound.h"
#include "DancingCharacters.h" #include "DancingCharacters.h"
#include "AttackDisplay.h"
class ScoreDisplay; class ScoreDisplay;
class LifeMeter; class LifeMeter;
@@ -83,6 +84,8 @@ protected:
Combo m_Combo; Combo m_Combo;
AttackDisplay m_AttackDisplay;
int m_iDCState; int m_iDCState;
// DancingCharacters* m_pDancingCharacters; // used to adjust the 2D anims dancing states // DancingCharacters* m_pDancingCharacters; // used to adjust the 2D anims dancing states
LifeMeter* m_pLifeMeter; LifeMeter* m_pLifeMeter;
+1 -1
View File
@@ -102,7 +102,7 @@ void ScoreKeeperRave::LaunchAttack( AttackLevel al )
// apply new attack // apply new attack
GAMESTATE->LaunchAttack( pnToAttack, a ); GAMESTATE->LaunchAttack( pnToAttack, a );
SCREENMAN->SystemMessage( ssprintf( "attacking %d with %s", pnToAttack, sAttackToGive.c_str() ) ); // SCREENMAN->SystemMessage( ssprintf( "attacking %d with %s", pnToAttack, sAttackToGive.c_str() ) );
m_soundLaunchAttack.Play(); m_soundLaunchAttack.Play();
} }
+49 -22
View File
@@ -1,5 +1,5 @@
# Microsoft Developer Studio Project File - Name="StepMania" - Package Owner=<4> # Microsoft Developer Studio Project File - Name="StepMania" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00 # Microsoft Developer Studio Generated Build File, Format Version 60000
# ** DO NOT EDIT ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101 # TARGTYPE "Win32 (x86) Application" 0x0101
@@ -62,7 +62,7 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib # SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
# Begin Special Build Tool # Begin Special Build Tool
IntDir=.\../Debug6 IntDir=.\../Debug6
TargetDir=\projects\stepmania\stepmania TargetDir=\stepmania\stepmania
TargetName=StepMania-debug TargetName=StepMania-debug
SOURCE="$(InputPath)" SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
@@ -98,6 +98,10 @@ XBCP=xbecopy.exe
# ADD BASE XBCP /NOLOGO # ADD BASE XBCP /NOLOGO
# ADD XBCP /NOLOGO # ADD XBCP /NOLOGO
# Begin Special Build Tool # Begin Special Build Tool
IntDir=.\Debug
TargetDir=\stepmania\stepmania
TargetName=default
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \ PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\ /Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
@@ -136,7 +140,7 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /pdb:none # SUBTRACT LINK32 /verbose /pdb:none
# Begin Special Build Tool # Begin Special Build Tool
IntDir=.\../Release6 IntDir=.\../Release6
TargetDir=\projects\stepmania\stepmania TargetDir=\stepmania\stepmania
TargetName=StepMania TargetName=StepMania
SOURCE="$(InputPath)" SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
@@ -176,6 +180,10 @@ XBCP=xbecopy.exe
# ADD BASE XBCP /NOLOGO # ADD BASE XBCP /NOLOGO
# ADD XBCP /NOLOGO # ADD XBCP /NOLOGO
# Begin Special Build Tool # Begin Special Build Tool
IntDir=.\StepMania___Xbox_Release
TargetDir=\stepmania\stepmania
TargetName=default
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \ PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\ /Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
@@ -2300,6 +2308,25 @@ SOURCE=.\arch\Lights\LightsDriver_Null.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\arch\Lights\LightsDriver_SystemMessage.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug"
!ELSEIF "$(CFG)" == "StepMania - Xbox Debug"
!ELSEIF "$(CFG)" == "StepMania - Win32 Release"
!ELSEIF "$(CFG)" == "StepMania - Xbox Release"
!ENDIF
# End Source File
# Begin Source File
SOURCE=.\arch\Lights\LightsDriver_SystemMessage.h
# End Source File
# Begin Source File
SOURCE=.\arch\Lights\LightsDriver_Win32Parallel.cpp SOURCE=.\arch\Lights\LightsDriver_Win32Parallel.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug" !IF "$(CFG)" == "StepMania - Win32 Debug"
@@ -2934,6 +2961,25 @@ SOURCE=.\ArrowEffects.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\AttackDisplay.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug"
!ELSEIF "$(CFG)" == "StepMania - Xbox Debug"
!ELSEIF "$(CFG)" == "StepMania - Win32 Release"
!ELSEIF "$(CFG)" == "StepMania - Xbox Release"
!ENDIF
# End Source File
# Begin Source File
SOURCE=.\AttackDisplay.h
# End Source File
# Begin Source File
SOURCE=.\Background.cpp SOURCE=.\Background.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug" !IF "$(CFG)" == "StepMania - Win32 Debug"
@@ -5558,25 +5604,6 @@ SOURCE=.\error2.bmp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\arch\Lights\LightsDriver_SystemMessage.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug"
!ELSEIF "$(CFG)" == "StepMania - Xbox Debug"
!ELSEIF "$(CFG)" == "StepMania - Win32 Release"
!ELSEIF "$(CFG)" == "StepMania - Xbox Release"
!ENDIF
# End Source File
# Begin Source File
SOURCE=.\arch\Lights\LightsDriver_SystemMessage.h
# End Source File
# Begin Source File
SOURCE=.\loading.bmp SOURCE=.\loading.bmp
# End Source File # End Source File
# Begin Source File # Begin Source File