do judgements in Lua

remove bShowJudgment; use a different sType for dummies
and blank the elements if wanted
This commit is contained in:
Glenn Maynard
2007-03-02 06:52:20 +00:00
parent 7116b55eab
commit 4c9b90a480
4 changed files with 34 additions and 67 deletions
+19 -54
View File
@@ -139,7 +139,7 @@ float Player::GetWindowSeconds( TimingWindow tw )
return fSecs; return fSecs;
} }
Player::Player( NoteData &nd, bool bShowNoteField, bool bShowJudgment ) : m_NoteData(nd) Player::Player( NoteData &nd, bool bShowNoteField ) : m_NoteData(nd)
{ {
m_bLoaded = false; m_bLoaded = false;
@@ -157,20 +157,6 @@ Player::Player( NoteData &nd, bool bShowNoteField, bool bShowJudgment ) : m_Note
m_bPaused = false; m_bPaused = false;
m_pJudgment = NULL;
if( bShowJudgment )
{
m_pJudgment = new Judgment;
this->AddChild( m_pJudgment );
}
m_pCombo = NULL;
if( bShowJudgment )
{
m_pCombo = new Combo;
this->AddChild( m_pCombo );
}
m_pAttackDisplay = NULL; m_pAttackDisplay = NULL;
if( bShowNoteField ) if( bShowNoteField )
{ {
@@ -191,8 +177,6 @@ Player::Player( NoteData &nd, bool bShowNoteField, bool bShowJudgment ) : m_Note
Player::~Player() Player::~Player()
{ {
SAFE_DELETE( m_pJudgment );
SAFE_DELETE( m_pCombo );
SAFE_DELETE( m_pAttackDisplay ); SAFE_DELETE( m_pAttackDisplay );
SAFE_DELETE( m_pNoteField ); SAFE_DELETE( m_pNoteField );
for( unsigned i = 0; i < m_vHoldJudgment.size(); ++i ) for( unsigned i = 0; i < m_vHoldJudgment.size(); ++i )
@@ -231,7 +215,6 @@ void Player::Init(
DRAW_DISTANCE_AFTER_TARGET_PIXELS.Load( sType, "DrawDistanceAfterTargetsPixels" ); DRAW_DISTANCE_AFTER_TARGET_PIXELS.Load( sType, "DrawDistanceAfterTargetsPixels" );
DRAW_DISTANCE_BEFORE_TARGET_PIXELS.Load( sType, "DrawDistanceBeforeTargetsPixels" ); DRAW_DISTANCE_BEFORE_TARGET_PIXELS.Load( sType, "DrawDistanceBeforeTargetsPixels" );
if( m_pJudgment )
{ {
// //
// Init judgment positions // Init judgment positions
@@ -379,18 +362,19 @@ void Player::Init(
m_soundAttackLaunch.SetProperty( "Pan", fBalance ); m_soundAttackLaunch.SetProperty( "Pan", fBalance );
m_soundAttackEnding.SetProperty( "Pan", fBalance ); m_soundAttackEnding.SetProperty( "Pan", fBalance );
if( m_pCombo )
{ {
m_pCombo->SetName( "Combo" ); m_Combo.SetName( "Combo" );
m_pCombo->Load( THEME->GetPathG(sType,"combo"), m_pPlayerState, m_pPlayerStageStats ); m_Combo.Load( THEME->GetPathG(sType,"combo"), m_pPlayerState, m_pPlayerStageStats );
ActorUtil::LoadAllCommandsAndOnCommand( m_pCombo, sType ); ActorUtil::LoadAllCommandsAndOnCommand( m_Combo, sType );
this->AddChild( &m_Combo );
} }
if( m_pJudgment )
{ {
LuaThreadVariable var( "Player", LuaReference::Create(m_pPlayerState->m_PlayerNumber) );
m_pJudgment.Load( THEME->GetPathG(sType,"judgment") );
m_pJudgment->SetName( "Judgment" ); m_pJudgment->SetName( "Judgment" );
m_pJudgment->LoadNormal();
ActorUtil::LoadAllCommandsAndOnCommand( m_pJudgment, sType ); ActorUtil::LoadAllCommandsAndOnCommand( m_pJudgment, sType );
this->AddChild( m_pJudgment );
} }
// Load HoldJudgments // Load HoldJudgments
@@ -436,18 +420,14 @@ void Player::Load()
/* The editor reuses Players ... so we really need to make sure everything /* The editor reuses Players ... so we really need to make sure everything
* is reset and not tweening. Perhaps ActorFrame should recurse to subactors; * is reset and not tweening. Perhaps ActorFrame should recurse to subactors;
* then we could just this->StopTweening()? -glenn */ * then we could just this->StopTweening()? -glenn */
if( m_pJudgment ) m_pJudgment->PlayCommand("Reset");
m_pJudgment->StopTweening(); // m_Combo.Reset(); // don't reset combos between songs in a course!
// m_pCombo->Reset(); // don't reset combos between songs in a course!
if( m_pPlayerStageStats ) if( m_pPlayerStageStats )
{ {
if( m_pCombo ) m_Combo.SetCombo( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); // combo can persist between songs and games
m_pCombo->SetCombo( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); // combo can persist between songs and games
} }
if( m_pAttackDisplay ) if( m_pAttackDisplay )
m_pAttackDisplay->Init( m_pPlayerState ); m_pAttackDisplay->Init( m_pPlayerState );
if( m_pJudgment )
m_pJudgment->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
* if some ScoreDisplays need it. */ * if some ScoreDisplays need it. */
@@ -503,11 +483,8 @@ void Player::Load()
const bool bReverse = m_pPlayerState->m_PlayerOptions.GetStage().GetReversePercentForColumn( 0 ) == 1; const bool bReverse = m_pPlayerState->m_PlayerOptions.GetStage().GetReversePercentForColumn( 0 ) == 1;
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides; bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides;
if( m_pCombo ) m_Combo.SetX( COMBO_X.GetValue(pn, bPlayerUsingBothSides) );
{ m_Combo.SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y );
m_pCombo->SetX( COMBO_X.GetValue(pn, bPlayerUsingBothSides) );
m_pCombo->SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y );
}
if( m_pAttackDisplay ) if( m_pAttackDisplay )
m_pAttackDisplay->SetX( ATTACK_DISPLAY_X.GetValue(pn, bPlayerUsingBothSides) - 40 ); m_pAttackDisplay->SetX( ATTACK_DISPLAY_X.GetValue(pn, bPlayerUsingBothSides) - 40 );
// set this in Update //m_pAttackDisplay->SetY( bReverse ? ATTACK_DISPLAY_Y_REVERSE : ATTACK_DISPLAY_Y ); // set this in Update //m_pAttackDisplay->SetY( bReverse ? ATTACK_DISPLAY_Y_REVERSE : ATTACK_DISPLAY_Y );
@@ -622,14 +599,11 @@ void Player::Update( float fDeltaTime )
const bool bReverse = m_pPlayerState->m_PlayerOptions.GetCurrent().GetReversePercentForColumn(0) == 1; const bool bReverse = m_pPlayerState->m_PlayerOptions.GetCurrent().GetReversePercentForColumn(0) == 1;
float fPercentCentered = m_pPlayerState->m_PlayerOptions.GetCurrent().m_fScrolls[PlayerOptions::SCROLL_CENTERED]; float fPercentCentered = m_pPlayerState->m_PlayerOptions.GetCurrent().m_fScrolls[PlayerOptions::SCROLL_CENTERED];
if( m_pCombo ) m_Combo.SetY(
{
m_pCombo->SetY(
bReverse ? bReverse ?
COMBO_Y_REVERSE + fPercentCentered * COMBO_CENTERED_ADDY_REVERSE : COMBO_Y_REVERSE + fPercentCentered * COMBO_CENTERED_ADDY_REVERSE :
COMBO_Y + fPercentCentered * COMBO_CENTERED_ADDY ); COMBO_Y + fPercentCentered * COMBO_CENTERED_ADDY );
}
if( m_pJudgment )
{ {
const Actor::TweenState &ts1 = m_tsJudgment[bReverse?1:0][0]; const Actor::TweenState &ts1 = m_tsJudgment[bReverse?1:0][0];
const Actor::TweenState &ts2 = m_tsJudgment[bReverse?1:0][1]; const Actor::TweenState &ts2 = m_tsJudgment[bReverse?1:0][1];
@@ -642,7 +616,6 @@ void Player::Update( float fDeltaTime )
float fNoteFieldZoom = 1 - fTinyPercent*0.5f; float fNoteFieldZoom = 1 - fTinyPercent*0.5f;
if( m_pNoteField ) if( m_pNoteField )
m_pNoteField->SetZoom( fNoteFieldZoom ); m_pNoteField->SetZoom( fNoteFieldZoom );
if( m_pJudgment )
m_pJudgment->SetZoom( m_pJudgment->GetZoom() * fJudgmentZoom ); m_pJudgment->SetZoom( m_pJudgment->GetZoom() * fJudgmentZoom );
if( m_sprJudgmentFrame.IsLoaded() ) if( m_sprJudgmentFrame.IsLoaded() )
m_sprJudgmentFrame->SetZoom( m_sprJudgmentFrame->GetZoom() * fJudgmentZoom ); m_sprJudgmentFrame->SetZoom( m_sprJudgmentFrame->GetZoom() * fJudgmentZoom );
@@ -1032,10 +1005,7 @@ void Player::DrawPrimitives()
// Draw these below everything else. // Draw these below everything else.
if( m_pPlayerState->m_PlayerOptions.GetCurrent().m_fBlind == 0 ) if( m_pPlayerState->m_PlayerOptions.GetCurrent().m_fBlind == 0 )
{ m_Combo.Draw();
if( m_pCombo )
m_pCombo->Draw();
}
if( m_pAttackDisplay ) if( m_pAttackDisplay )
m_pAttackDisplay->Draw(); m_pAttackDisplay->Draw();
@@ -1102,7 +1072,6 @@ void Player::DrawTapJudgments()
if( m_sprJudgmentFrame.IsLoaded() ) if( m_sprJudgmentFrame.IsLoaded() )
m_sprJudgmentFrame->Draw(); m_sprJudgmentFrame->Draw();
if( m_pJudgment )
m_pJudgment->Draw(); m_pJudgment->Draw();
} }
@@ -2365,9 +2334,9 @@ void Player::HandleTapRowScore( unsigned row )
SendComboMessages( iOldCombo, iOldMissCombo ); SendComboMessages( iOldCombo, iOldMissCombo );
if( m_pPlayerStageStats && m_pCombo ) if( m_pPlayerStageStats )
{ {
m_pCombo->SetCombo( iCurCombo, iCurMissCombo ); m_Combo.SetCombo( iCurCombo, iCurMissCombo );
} }
#define CROSSED( x ) (iOldCombo<x && iCurCombo>=x) #define CROSSED( x ) (iOldCombo<x && iCurCombo>=x)
@@ -2474,8 +2443,7 @@ void Player::FadeToFail()
m_pNoteField->FadeToFail(); m_pNoteField->FadeToFail();
// clear miss combo // clear miss combo
if( m_pCombo ) m_Combo.SetCombo( 0, 0 );
m_pCombo->SetCombo( 0, 0 );
} }
void Player::CacheAllUsedNoteSkins() void Player::CacheAllUsedNoteSkins()
@@ -2503,9 +2471,6 @@ bool Player::IsPlayingBeginner() const
void Player::SetJudgment( TapNoteScore tns, bool bEarly ) void Player::SetJudgment( TapNoteScore tns, bool bEarly )
{ {
if( m_pJudgment )
m_pJudgment->SetJudgment( tns, bEarly );
Message msg("Judgment"); Message msg("Judgment");
msg.SetParam( "Player", m_pPlayerState->m_PlayerNumber ); msg.SetParam( "Player", m_pPlayerState->m_PlayerNumber );
msg.SetParam( "MultiPlayer", m_pPlayerState->m_mp ); msg.SetParam( "MultiPlayer", m_pPlayerState->m_mp );
+3 -4
View File
@@ -4,7 +4,6 @@
#define PLAYER_H #define PLAYER_H
#include "ActorFrame.h" #include "ActorFrame.h"
#include "Judgment.h"
#include "HoldJudgment.h" #include "HoldJudgment.h"
#include "Combo.h" #include "Combo.h"
#include "NoteDataWithScoring.h" #include "NoteDataWithScoring.h"
@@ -41,7 +40,7 @@ class Player: public ActorFrame
{ {
public: public:
// The passed in NoteData isn't touched until Load() is called. // The passed in NoteData isn't touched until Load() is called.
Player( NoteData &nd, bool bShowNoteField = true, bool bShowJudgment = true ); Player( NoteData &nd, bool bShowNoteField = true );
~Player(); ~Player();
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );
@@ -144,10 +143,10 @@ protected:
vector<HoldJudgment*> m_vHoldJudgment; vector<HoldJudgment*> m_vHoldJudgment;
Judgment *m_pJudgment; AutoActor m_pJudgment;
AutoActor m_sprJudgmentFrame; AutoActor m_sprJudgmentFrame;
Combo *m_pCombo; Combo m_Combo;
AttackDisplay *m_pAttackDisplay; AttackDisplay *m_pAttackDisplay;
+6 -3
View File
@@ -179,7 +179,7 @@ void PlayerInfo::Load( PlayerNumber pn, MultiPlayer mp, bool bShowNoteField )
m_ptextPlayerOptions = NULL; m_ptextPlayerOptions = NULL;
m_pActiveAttackList = NULL; m_pActiveAttackList = NULL;
m_pPlayer = new Player( m_NoteData, bShowNoteField, true ); m_pPlayer = new Player( m_NoteData, bShowNoteField );
m_pInventory = NULL; m_pInventory = NULL;
m_pDifficultyIcon = NULL; m_pDifficultyIcon = NULL;
m_pDifficultyMeter = NULL; m_pDifficultyMeter = NULL;
@@ -196,7 +196,7 @@ void PlayerInfo::LoadDummyP1()
m_bIsDummy = true; m_bIsDummy = true;
// don't init any of the scoring objects // don't init any of the scoring objects
m_pPlayer = new Player( m_NoteData, true, false ); m_pPlayer = new Player( m_NoteData, true );
m_PlayerStateDummy = *GAMESTATE->m_pPlayerState[PLAYER_1]; m_PlayerStateDummy = *GAMESTATE->m_pPlayerState[PLAYER_1];
m_PlayerStateDummy.m_PlayerController = PC_AUTOPLAY; m_PlayerStateDummy.m_PlayerController = PC_AUTOPLAY;
@@ -743,8 +743,11 @@ void ScreenGameplay::Init()
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
{ {
RString sType = PLAYER_TYPE;
if( pi->m_bIsDummy )
sType += "Dummy";
pi->m_pPlayer->Init( pi->m_pPlayer->Init(
PLAYER_TYPE, sType,
pi->GetPlayerState(), pi->GetPlayerState(),
pi->GetPlayerStageStats(), pi->GetPlayerStageStats(),
pi->m_pLifeMeter, pi->m_pLifeMeter,
+1 -1
View File
@@ -26,7 +26,7 @@ void ScreenGameplayShared::FillPlayerInfo( vector<PlayerInfo> &vPlayerInfoOut )
pi.m_pPrimaryScoreDisplay = new ScoreDisplayNormal; pi.m_pPrimaryScoreDisplay = new ScoreDisplayNormal;
pi.m_pPrimaryScoreDisplay->Init( pPlayerState, pPlayerStageStats ); pi.m_pPrimaryScoreDisplay->Init( pPlayerState, pPlayerStageStats );
pi.m_pPrimaryScoreKeeper = new ScoreKeeperShared( pPlayerState, pPlayerStageStats ); pi.m_pPrimaryScoreKeeper = new ScoreKeeperShared( pPlayerState, pPlayerStageStats );
pi.m_pPlayer = new Player( mpi.m_NoteData, pn == mpn, true ); pi.m_pPlayer = new Player( mpi.m_NoteData, pn == mpn );
} }
} }