From c9b88edeb9bad449b5d7100762f63ec3f730cb76 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 30 Aug 2005 04:30:08 +0000 Subject: [PATCH] bindings --- stepmania/src/GameConstantsAndTypes.cpp | 14 +++++++++-- stepmania/src/ScreenEvaluation.cpp | 32 ++++++++++++++----------- stepmania/src/ScreenEvaluation.h | 4 ++++ 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/stepmania/src/GameConstantsAndTypes.cpp b/stepmania/src/GameConstantsAndTypes.cpp index 59f0625992..24ecf6117c 100644 --- a/stepmania/src/GameConstantsAndTypes.cpp +++ b/stepmania/src/GameConstantsAndTypes.cpp @@ -242,7 +242,12 @@ static const CString PerDifficultyAwardNames[] = { XToString( PerDifficultyAward, NUM_PER_DIFFICULTY_AWARDS ); XToThemedString( PerDifficultyAward, NUM_PER_DIFFICULTY_AWARDS ); StringToX( PerDifficultyAward ); - +static void LuaPerDifficultyAward( lua_State* L ) +{ + FOREACH_PerDifficultyAward( i ) + LUA->SetGlobal( PerDifficultyAwardNames[i], i ); +} +REGISTER_WITH_LUA_FUNCTION( LuaPerDifficultyAward ); // Numbers are intentially not at the front of these strings so that the // strings can be used as XML entity names. @@ -263,7 +268,12 @@ static const CString PeakComboAwardNames[] = { XToString( PeakComboAward, NUM_PEAK_COMBO_AWARDS ); XToThemedString( PeakComboAward, NUM_PEAK_COMBO_AWARDS ); StringToX( PeakComboAward ); - +static void LuaPeakComboAward( lua_State* L ) +{ + FOREACH_PeakComboAward( i ) + LUA->SetGlobal( PeakComboAwardNames[i], i ); +} +REGISTER_WITH_LUA_FUNCTION( LuaPeakComboAward ); LuaXToString( Difficulty ); LuaStringToX( Difficulty ); diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index 802506491b..695f31a311 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -255,12 +255,8 @@ void ScreenEvaluation::Init() // // update persistent statistics // - int iPersonalHighScoreIndex[NUM_PLAYERS]; - int iMachineHighScoreIndex[NUM_PLAYERS]; RankingCategory rc[NUM_PLAYERS];; - PerDifficultyAward pdaToShow[NUM_PLAYERS]; - PeakComboAward pcaToShow[NUM_PLAYERS]; - CommitScores( m_StageStats, iPersonalHighScoreIndex, iMachineHighScoreIndex, rc, pdaToShow, pcaToShow ); + CommitScores( m_StageStats, m_iPersonalHighScoreIndex, m_iMachineHighScoreIndex, rc, m_pdaToShow, m_pcaToShow ); m_bTryExtraStage = GAMESTATE->HasEarnedExtraStage() && @@ -694,32 +690,32 @@ void ScreenEvaluation::Init() // FOREACH_EnabledPlayer( p ) { - if( iMachineHighScoreIndex[p] != -1 ) + if( m_iMachineHighScoreIndex[p] != -1 ) { - m_sprMachineRecord[p].Load( THEME->GetPathG( m_sName, ssprintf("MachineRecord %02d",iMachineHighScoreIndex[p]+1) ) ); + m_sprMachineRecord[p].Load( THEME->GetPathG( m_sName, ssprintf("MachineRecord %02d",m_iMachineHighScoreIndex[p]+1) ) ); m_sprMachineRecord[p]->SetName( ssprintf("MachineRecordP%d",p+1) ); SET_XY_AND_ON_COMMAND( m_sprMachineRecord[p] ); this->AddChild( m_sprMachineRecord[p] ); } - if( iPersonalHighScoreIndex[p] != -1 ) + if( m_iPersonalHighScoreIndex[p] != -1 ) { - m_sprPersonalRecord[p].Load( THEME->GetPathG( m_sName, ssprintf("PersonalRecord %02d",iPersonalHighScoreIndex[p]+1) ) ); + m_sprPersonalRecord[p].Load( THEME->GetPathG( m_sName, ssprintf("PersonalRecord %02d",m_iPersonalHighScoreIndex[p]+1) ) ); m_sprPersonalRecord[p]->SetName( ssprintf("PersonalRecordP%d",p+1) ); SET_XY_AND_ON_COMMAND( m_sprPersonalRecord[p] ); this->AddChild( m_sprPersonalRecord[p] ); } - if( SHOW_PER_DIFFICULTY_AWARD && pdaToShow[p]!=PER_DIFFICULTY_AWARD_INVALID ) + if( SHOW_PER_DIFFICULTY_AWARD && m_pdaToShow[p]!=PER_DIFFICULTY_AWARD_INVALID ) { - CString sAward = PerDifficultyAwardToString( pdaToShow[p] ); + CString sAward = PerDifficultyAwardToString( m_pdaToShow[p] ); m_PerDifficultyAward[p].Load( THEME->GetPathG(m_sName,"PerDifficultyAward "+sAward) ); m_PerDifficultyAward[p]->SetName( ssprintf("PerDifficultyAwardP%d",p+1) ); SET_XY_AND_ON_COMMAND( m_PerDifficultyAward[p] ); this->AddChild( m_PerDifficultyAward[p] ); } - if( SHOW_PEAK_COMBO_AWARD && pcaToShow[p]!=PEAK_COMBO_AWARD_INVALID ) + if( SHOW_PEAK_COMBO_AWARD && m_pcaToShow[p]!=PEAK_COMBO_AWARD_INVALID ) { - CString sAward = PeakComboAwardToString( pcaToShow[p] ); + CString sAward = PeakComboAwardToString( m_pcaToShow[p] ); m_PeakComboAward[p].Load( THEME->GetPathG(m_sName,"PeakComboAward "+sAward) ); m_PeakComboAward[p]->SetName( ssprintf("PeakComboAwardP%d",p+1) ); @@ -730,7 +726,7 @@ void ScreenEvaluation::Init() bool bOneHasNewTopRecord = false; FOREACH_PlayerNumber( p ) - if( GAMESTATE->IsPlayerEnabled(p) && (iMachineHighScoreIndex[p] != -1 || iPersonalHighScoreIndex[p] != -1) ) + if( GAMESTATE->IsPlayerEnabled(p) && (m_iMachineHighScoreIndex[p] != -1 || m_iPersonalHighScoreIndex[p] != -1) ) bOneHasNewTopRecord = true; Grade best_grade = Grade_NoData; @@ -1352,10 +1348,18 @@ class LunaScreenEvaluation: public Luna public: LunaScreenEvaluation() { LUA->Register( Register ); } static int GetEvalStageStats( T* p, lua_State *L ) { p->m_StageStats.PushSelf( L ); return 1; } + static int GetPersonalHighScoreIndex( T* p, lua_State *L ) { lua_pushnumber( L, p->m_iPersonalHighScoreIndex[IArg(1)] ); return 1; } + static int GetMachineHighScoreIndex( T* p, lua_State *L ) { lua_pushnumber( L, p->m_iMachineHighScoreIndex[IArg(1)] ); return 1; } + static int GetPerDifficultyAward( T* p, lua_State *L ) { lua_pushnumber( L, p->m_pdaToShow[IArg(1)] ); return 1; } + static int GetPeakComboAward( T* p, lua_State *L ) { lua_pushnumber( L, p->m_pcaToShow[IArg(1)] ); return 1; } static void Register( Lua *L ) { ADD_METHOD( GetEvalStageStats ) + ADD_METHOD( GetPersonalHighScoreIndex ) + ADD_METHOD( GetMachineHighScoreIndex ) + ADD_METHOD( GetPerDifficultyAward ) + ADD_METHOD( GetPeakComboAward ) Luna::Register( L ); } }; diff --git a/stepmania/src/ScreenEvaluation.h b/stepmania/src/ScreenEvaluation.h index c7b702b5ab..bd9c92a6e3 100644 --- a/stepmania/src/ScreenEvaluation.h +++ b/stepmania/src/ScreenEvaluation.h @@ -48,6 +48,10 @@ public: virtual void PushSelf( lua_State *L ); StageStats m_StageStats; + int m_iPersonalHighScoreIndex[NUM_PLAYERS]; + int m_iMachineHighScoreIndex[NUM_PLAYERS]; + PerDifficultyAward m_pdaToShow[NUM_PLAYERS]; + PeakComboAward m_pcaToShow[NUM_PLAYERS]; protected: void CommitScores(