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
+24 -59
View File
@@ -139,7 +139,7 @@ float Player::GetWindowSeconds( TimingWindow tw )
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;
@@ -157,20 +157,6 @@ Player::Player( NoteData &nd, bool bShowNoteField, bool bShowJudgment ) : m_Note
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;
if( bShowNoteField )
{
@@ -191,8 +177,6 @@ Player::Player( NoteData &nd, bool bShowNoteField, bool bShowJudgment ) : m_Note
Player::~Player()
{
SAFE_DELETE( m_pJudgment );
SAFE_DELETE( m_pCombo );
SAFE_DELETE( m_pAttackDisplay );
SAFE_DELETE( m_pNoteField );
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_BEFORE_TARGET_PIXELS.Load( sType, "DrawDistanceBeforeTargetsPixels" );
if( m_pJudgment )
{
//
// Init judgment positions
@@ -379,18 +362,19 @@ void Player::Init(
m_soundAttackLaunch.SetProperty( "Pan", fBalance );
m_soundAttackEnding.SetProperty( "Pan", fBalance );
if( m_pCombo )
{
m_pCombo->SetName( "Combo" );
m_pCombo->Load( THEME->GetPathG(sType,"combo"), m_pPlayerState, m_pPlayerStageStats );
ActorUtil::LoadAllCommandsAndOnCommand( m_pCombo, sType );
m_Combo.SetName( "Combo" );
m_Combo.Load( THEME->GetPathG(sType,"combo"), m_pPlayerState, m_pPlayerStageStats );
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->LoadNormal();
ActorUtil::LoadAllCommandsAndOnCommand( m_pJudgment, sType );
this->AddChild( m_pJudgment );
}
// Load HoldJudgments
@@ -436,18 +420,14 @@ void Player::Load()
/* The editor reuses Players ... so we really need to make sure everything
* is reset and not tweening. Perhaps ActorFrame should recurse to subactors;
* then we could just this->StopTweening()? -glenn */
if( m_pJudgment )
m_pJudgment->StopTweening();
// m_pCombo->Reset(); // don't reset combos between songs in a course!
m_pJudgment->PlayCommand("Reset");
// m_Combo.Reset(); // don't reset combos between songs in a course!
if( m_pPlayerStageStats )
{
if( m_pCombo )
m_pCombo->SetCombo( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); // combo can persist between songs and games
m_Combo.SetCombo( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); // combo can persist between songs and games
}
if( m_pAttackDisplay )
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
* if some ScoreDisplays need it. */
@@ -503,11 +483,8 @@ void Player::Load()
const bool bReverse = m_pPlayerState->m_PlayerOptions.GetStage().GetReversePercentForColumn( 0 ) == 1;
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides;
if( m_pCombo )
{
m_pCombo->SetX( COMBO_X.GetValue(pn, bPlayerUsingBothSides) );
m_pCombo->SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y );
}
m_Combo.SetX( COMBO_X.GetValue(pn, bPlayerUsingBothSides) );
m_Combo.SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y );
if( m_pAttackDisplay )
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 );
@@ -622,14 +599,11 @@ void Player::Update( float fDeltaTime )
const bool bReverse = m_pPlayerState->m_PlayerOptions.GetCurrent().GetReversePercentForColumn(0) == 1;
float fPercentCentered = m_pPlayerState->m_PlayerOptions.GetCurrent().m_fScrolls[PlayerOptions::SCROLL_CENTERED];
if( m_pCombo )
{
m_pCombo->SetY(
bReverse ?
COMBO_Y_REVERSE + fPercentCentered * COMBO_CENTERED_ADDY_REVERSE :
COMBO_Y + fPercentCentered * COMBO_CENTERED_ADDY );
}
if( m_pJudgment )
m_Combo.SetY(
bReverse ?
COMBO_Y_REVERSE + fPercentCentered * COMBO_CENTERED_ADDY_REVERSE :
COMBO_Y + fPercentCentered * COMBO_CENTERED_ADDY );
{
const Actor::TweenState &ts1 = m_tsJudgment[bReverse?1:0][0];
const Actor::TweenState &ts2 = m_tsJudgment[bReverse?1:0][1];
@@ -642,8 +616,7 @@ void Player::Update( float fDeltaTime )
float fNoteFieldZoom = 1 - fTinyPercent*0.5f;
if( m_pNoteField )
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() )
m_sprJudgmentFrame->SetZoom( m_sprJudgmentFrame->GetZoom() * fJudgmentZoom );
@@ -1032,10 +1005,7 @@ void Player::DrawPrimitives()
// Draw these below everything else.
if( m_pPlayerState->m_PlayerOptions.GetCurrent().m_fBlind == 0 )
{
if( m_pCombo )
m_pCombo->Draw();
}
m_Combo.Draw();
if( m_pAttackDisplay )
m_pAttackDisplay->Draw();
@@ -1102,8 +1072,7 @@ void Player::DrawTapJudgments()
if( m_sprJudgmentFrame.IsLoaded() )
m_sprJudgmentFrame->Draw();
if( m_pJudgment )
m_pJudgment->Draw();
m_pJudgment->Draw();
}
void Player::DrawHoldJudgments()
@@ -2365,9 +2334,9 @@ void Player::HandleTapRowScore( unsigned row )
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)
@@ -2474,8 +2443,7 @@ void Player::FadeToFail()
m_pNoteField->FadeToFail();
// clear miss combo
if( m_pCombo )
m_pCombo->SetCombo( 0, 0 );
m_Combo.SetCombo( 0, 0 );
}
void Player::CacheAllUsedNoteSkins()
@@ -2503,9 +2471,6 @@ bool Player::IsPlayingBeginner() const
void Player::SetJudgment( TapNoteScore tns, bool bEarly )
{
if( m_pJudgment )
m_pJudgment->SetJudgment( tns, bEarly );
Message msg("Judgment");
msg.SetParam( "Player", m_pPlayerState->m_PlayerNumber );
msg.SetParam( "MultiPlayer", m_pPlayerState->m_mp );
+3 -4
View File
@@ -4,7 +4,6 @@
#define PLAYER_H
#include "ActorFrame.h"
#include "Judgment.h"
#include "HoldJudgment.h"
#include "Combo.h"
#include "NoteDataWithScoring.h"
@@ -41,7 +40,7 @@ class Player: public ActorFrame
{
public:
// 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();
virtual void Update( float fDeltaTime );
@@ -144,10 +143,10 @@ protected:
vector<HoldJudgment*> m_vHoldJudgment;
Judgment *m_pJudgment;
AutoActor m_pJudgment;
AutoActor m_sprJudgmentFrame;
Combo *m_pCombo;
Combo m_Combo;
AttackDisplay *m_pAttackDisplay;
+6 -3
View File
@@ -179,7 +179,7 @@ void PlayerInfo::Load( PlayerNumber pn, MultiPlayer mp, bool bShowNoteField )
m_ptextPlayerOptions = NULL;
m_pActiveAttackList = NULL;
m_pPlayer = new Player( m_NoteData, bShowNoteField, true );
m_pPlayer = new Player( m_NoteData, bShowNoteField );
m_pInventory = NULL;
m_pDifficultyIcon = NULL;
m_pDifficultyMeter = NULL;
@@ -196,7 +196,7 @@ void PlayerInfo::LoadDummyP1()
m_bIsDummy = true;
// 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.m_PlayerController = PC_AUTOPLAY;
@@ -743,8 +743,11 @@ void ScreenGameplay::Init()
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
{
RString sType = PLAYER_TYPE;
if( pi->m_bIsDummy )
sType += "Dummy";
pi->m_pPlayer->Init(
PLAYER_TYPE,
sType,
pi->GetPlayerState(),
pi->GetPlayerStageStats(),
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->Init( 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 );
}
}