From ed044bd2f9465bcc28dc4c922a14ebe471ceeda8 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 23 Feb 2005 17:52:28 +0000 Subject: [PATCH] add Lua binding --- stepmania/src/FadingBanner.cpp | 6 ++++++ stepmania/src/FadingBanner.h | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/stepmania/src/FadingBanner.cpp b/stepmania/src/FadingBanner.cpp index be3586a722..9b5d7c5ea9 100644 --- a/stepmania/src/FadingBanner.cpp +++ b/stepmania/src/FadingBanner.cpp @@ -10,6 +10,12 @@ #include "SongManager.h" #include "ThemeMetric.h" +// lua start +LUA_REGISTER_CLASS( FadingBanner ) +// lua end +REGISTER_ACTOR_CLASS( FadingBanner ); + + static ThemeMetric FADE_SECONDS ("FadingBanner","FadeSeconds"); /* diff --git a/stepmania/src/FadingBanner.h b/stepmania/src/FadingBanner.h index 935854b5ee..603df4f9ba 100644 --- a/stepmania/src/FadingBanner.h +++ b/stepmania/src/FadingBanner.h @@ -7,6 +7,26 @@ #include "ActorFrame.h" #include "RageTimer.h" +template +class LunaFadingBanner : public LunaActorFrame +{ +public: + LunaFadingBanner() { LUA->Register( Register ); } + + static int LoadFromSong( T* p, lua_State *L ) + { + if( lua_isnil(L,1) ) { p->LoadFromSong( NULL ); } + else { Song *pS = Luna::check(L,1); p->LoadFromSong( pS ); } + return 0; + } + + static void Register(lua_State *L) + { + ADD_METHOD( LoadFromSong ) + LunaActor::Register( L ); + } +}; + class FadingBanner : public ActorFrame { public: @@ -31,6 +51,9 @@ public: virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); + // Lua + void PushSelf( lua_State *L ); + protected: void BeforeChange();