diff --git a/stepmania/src/GameConstantsAndTypes.cpp b/stepmania/src/GameConstantsAndTypes.cpp index b68bc55795..c8adf17930 100644 --- a/stepmania/src/GameConstantsAndTypes.cpp +++ b/stepmania/src/GameConstantsAndTypes.cpp @@ -90,6 +90,16 @@ static const CString CoinModeNames[] = { "free", }; XToString( CoinMode, NUM_COIN_MODES ); +static void LuaCoinMode(lua_State* L) +{ + FOREACH_CoinMode( i ) + { + CString s = CoinModeNames[i]; + s.MakeUpper(); + LUA->SetGlobal( "COIN_"+s, i ); + } +} +REGISTER_WITH_LUA_FUNCTION( LuaCoinMode ); static const CString PremiumNames[] = { diff --git a/stepmania/src/GameConstantsAndTypes.h b/stepmania/src/GameConstantsAndTypes.h index 0a752816df..12a225e7d3 100644 --- a/stepmania/src/GameConstantsAndTypes.h +++ b/stepmania/src/GameConstantsAndTypes.h @@ -267,7 +267,7 @@ const int ITEM_NONE = -1; // enum CoinMode { COIN_HOME, COIN_PAY, COIN_FREE, NUM_COIN_MODES }; - +#define FOREACH_CoinMode( i ) FOREACH_ENUM( CoinMode, NUM_COIN_MODES, i ) const CString& CoinModeToString( CoinMode cm ); diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 33d1d7b5c2..c99be434c0 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -2002,6 +2002,7 @@ public: static int GetNumPlayersEnabled( T* p, lua_State *L ) { lua_pushnumber(L, p->GetNumPlayersEnabled() ); return 1; } static int GetSongBeat( T* p, lua_State *L ) { lua_pushnumber(L, p->m_fSongBeat ); return 1; } static int PlayerUsingBothSides( T* p, lua_State *L ) { lua_pushboolean(L, p->PlayerUsingBothSides() ); return 1; } + static int GetCoins( T* p, lua_State *L ) { lua_pushnumber(L, p->m_iCoins ); return 1; } static void Register(lua_State *L) { @@ -2039,6 +2040,7 @@ public: ADD_METHOD( GetNumPlayersEnabled ) ADD_METHOD( GetSongBeat ) ADD_METHOD( PlayerUsingBothSides ) + ADD_METHOD( GetCoins ) Luna::Register( L ); diff --git a/stepmania/src/MessageManager.cpp b/stepmania/src/MessageManager.cpp index 1d1215d591..721a2038de 100644 --- a/stepmania/src/MessageManager.cpp +++ b/stepmania/src/MessageManager.cpp @@ -38,6 +38,7 @@ static const CString MessageNames[] = { "MenuRightP2", "MadeChoiceP1", "MadeChoiceP2", + "CoinInserted", }; XToString( Message, NUM_MESSAGES ); diff --git a/stepmania/src/MessageManager.h b/stepmania/src/MessageManager.h index c0357f3d4e..a97cabb458 100644 --- a/stepmania/src/MessageManager.h +++ b/stepmania/src/MessageManager.h @@ -45,6 +45,7 @@ enum Message MESSAGE_MENU_RIGHT_P2, MESSAGE_MADE_CHOICE_P1, MESSAGE_MADE_CHOICE_P2, + MESSAGE_COIN_INSERTED, NUM_MESSAGES, MESSAGE_INVALID }; diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index 732ea941ab..edddcc80bf 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -1269,6 +1269,7 @@ void InsertCoin( int iNum ) BOOKKEEPER->CoinInserted(); SCREENMAN->RefreshCreditsMessages(); SCREENMAN->PlayCoinSound(); + MESSAGEMAN->Broadcast( MESSAGE_COIN_INSERTED ); } void InsertCredit()