simpler Lua boilerplate

This commit is contained in:
Glenn Maynard
2006-09-27 20:30:29 +00:00
parent df887f4efd
commit f4975f1f54
25 changed files with 80 additions and 124 deletions
+4 -5
View File
@@ -1305,8 +1305,6 @@ Actor::TweenInfo &Actor::TweenInfo::operator=( const TweenInfo &rhs )
class LunaActor : public Luna<Actor>
{
public:
LunaActor() { LUA->Register( Register ); }
static int sleep( T* p, lua_State *L ) { p->Sleep(FArg(1)); return 0; }
static int linear( T* p, lua_State *L ) { p->BeginTweening(FArg(1),TWEEN_LINEAR); return 0; }
static int accelerate( T* p, lua_State *L ) { p->BeginTweening(FArg(1),TWEEN_ACCELERATE); return 0; }
@@ -1480,7 +1478,10 @@ public:
return 1;
}
static void Register(lua_State *L) {
LunaActor()
{
LUA->Register( Register );
ADD_METHOD( sleep );
ADD_METHOD( linear );
ADD_METHOD( accelerate );
@@ -1612,8 +1613,6 @@ public:
ADD_METHOD( GetName );
ADD_METHOD( GetParent );
Luna<T>::Register( L );
}
};
+3 -4
View File
@@ -391,8 +391,6 @@ void ActorFrame::SetDrawByZPosition( bool b )
class LunaActorFrame : public Luna<ActorFrame>
{
public:
LunaActorFrame() { LUA->Register( Register ); }
static int playcommandonchildren( T* p, lua_State *L ) { p->PlayCommandOnChildren(SArg(1)); return 0; }
static int playcommandonleaves( T* p, lua_State *L ) { p->PlayCommandOnLeaves(SArg(1)); return 0; }
static int propagate( T* p, lua_State *L ) { p->SetPropagateCommands( !!IArg(1) ); return 0; }
@@ -412,8 +410,10 @@ public:
static int GetNumChildren( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumChildren() ); return 1; }
static int SetDrawByZPosition( T* p, lua_State *L ) { p->SetDrawByZPosition( BArg(1) ); return 1; }
static void Register(lua_State *L)
LunaActorFrame()
{
LUA->Register( Register );
ADD_METHOD( playcommandonchildren );
ADD_METHOD( playcommandonleaves );
ADD_METHOD( propagate ); // deprecated
@@ -424,7 +424,6 @@ public:
ADD_METHOD( GetChild );
ADD_METHOD( GetNumChildren );
ADD_METHOD( SetDrawByZPosition );
Luna<T>::Register( L );
}
};
+3 -4
View File
@@ -58,22 +58,21 @@ void ActorFrameTexture::DrawPrimitives()
class LunaActorFrameTexture : public Luna<ActorFrameTexture>
{
public:
LunaActorFrameTexture() { LUA->Register( Register ); }
static int create( T* p, lua_State *L ) { p->Create(); return 0; }
static int enabledepthbuffer( T* p, lua_State *L ) { p->EnableDepthBuffer(BArg(1)); return 0; }
static int enablealphabuffer( T* p, lua_State *L ) { p->EnableAlphaBuffer(BArg(1)); return 0; }
static int enablepreservetexture( T* p, lua_State *L ) { p->EnablePreserveTexture(BArg(1)); return 0; }
static int settexturename( T* p, lua_State *L ) { p->SetTextureName(SArg(1)); return 0; }
static void Register(lua_State *L)
LunaActorFrameTexture()
{
LUA->Register( Register );
ADD_METHOD( create );
ADD_METHOD( enabledepthbuffer );
ADD_METHOD( enablealphabuffer );
ADD_METHOD( enablepreservetexture );
ADD_METHOD( settexturename );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -36,8 +36,6 @@ void ActorProxy::LoadFromNode( const RString& sDir, const XNode* pNode )
class LunaActorProxy: public Luna<ActorProxy>
{
public:
LunaActorProxy() { LUA->Register( Register ); }
static int SetTarget( T* p, lua_State *L )
{
Actor *pTarget = Luna<Actor>::check( L, 1 );
@@ -55,12 +53,12 @@ public:
return 1;
}
static void Register(lua_State *L)
LunaActorProxy()
{
LUA->Register( Register );
ADD_METHOD( SetTarget );
ADD_METHOD( GetTarget );
Luna<T>::Register( L );
}
};
+3 -4
View File
@@ -294,8 +294,6 @@ void ActorScroller::PositionItemsAndDrawPrimitives( bool bDrawPrimitives )
class LunaActorScroller: public Luna<ActorScroller>
{
public:
LunaActorScroller() { LUA->Register( Register ); }
static int PositionItems( T* p, lua_State *L ) { p->PositionItems(); return 0; }
static int SetTransformFromFunction( T* p, lua_State *L )
{
@@ -313,8 +311,10 @@ public:
static int scrollwithpadding( T* p, lua_State *L ) { p->ScrollWithPadding(FArg(1),FArg(2)); return 0; }
static int setfastcatchup( T* p, lua_State *L ) { p->SetFastCatchup(BArg(1)); return 0; }
static void Register(lua_State *L)
LunaActorScroller()
{
LUA->Register( Register );
ADD_METHOD( PositionItems );
ADD_METHOD( SetTransformFromFunction );
ADD_METHOD( SetTransformFromHeight );
@@ -325,7 +325,6 @@ public:
ADD_METHOD( scrollthroughallitems );
ADD_METHOD( scrollwithpadding );
ADD_METHOD( setfastcatchup );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -41,17 +41,15 @@ void ActorSound::LoadFromNode( const RString& sDir, const XNode* pNode )
class LunaActorSound: public Luna<ActorSound>
{
public:
LunaActorSound() { LUA->Register( Register ); }
static int load( T* p, lua_State *L ) { p->Load(SArg(1)); return 0; }
static int play( T* p, lua_State *L ) { p->Play(); return 0; }
static void Register(lua_State *L)
LunaActorSound()
{
LUA->Register( Register );
ADD_METHOD( load );
ADD_METHOD( play );
Luna<T>::Register( L );
}
};
+3 -4
View File
@@ -852,8 +852,6 @@ void ColorBitmapText::SetMaxLines( int iNumLines, int iDirection )
class LunaBitmapText: public Luna<BitmapText>
{
public:
LunaBitmapText() { LUA->Register( Register ); }
static int wrapwidthpixels( T* p, lua_State *L ) { p->SetWrapWidthPixels( IArg(1) ); return 0; }
static int maxwidth( T* p, lua_State *L ) { p->SetMaxWidth( FArg(1) ); return 0; }
static int maxheight( T* p, lua_State *L ) { p->SetMaxHeight( FArg(1) ); return 0; }
@@ -873,15 +871,16 @@ public:
}
static int GetText( T* p, lua_State *L ) { lua_pushstring( L, p->GetText() ); return 1; }
static void Register(lua_State *L)
LunaBitmapText()
{
LUA->Register( Register );
ADD_METHOD( wrapwidthpixels );
ADD_METHOD( maxwidth );
ADD_METHOD( maxheight );
ADD_METHOD( vertspacing );
ADD_METHOD( settext );
ADD_METHOD( GetText );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -122,8 +122,6 @@ Character* CharacterManager::GetCharacterFromID( RString sCharacterID )
class LunaCharacterManager: public Luna<CharacterManager>
{
public:
LunaCharacterManager() { LUA->Register( Register ); }
static int GetCharacter( T* p, lua_State *L )
{
Character *pCharacter = p->GetCharacterFromID(SArg(1));
@@ -135,11 +133,11 @@ public:
return 1;
}
static void Register(lua_State *L)
LunaCharacterManager()
{
ADD_METHOD( GetCharacter );
LUA->Register( Register );
Luna<T>::Register( L );
ADD_METHOD( GetCharacter );
}
};
+3 -5
View File
@@ -2906,8 +2906,6 @@ MenuButton GameManager::GetMenuButtonSecondaryFunction( const Game *pGame, GameB
class LunaGameManager: public Luna<GameManager>
{
public:
LunaGameManager() { LUA->Register( Register ); }
static int StepsTypeToLocalizedString( T* p, lua_State *L ) { lua_pushstring(L, p->StepsTypeToLocalizedString(Enum::Check<StepsType>(L, 1)) ); return 1; }
static int GetFirstStepsTypeForGame( T* p, lua_State *L )
{
@@ -2921,12 +2919,12 @@ public:
return 1;
}
static void Register(lua_State *L)
LunaGameManager()
{
LUA->Register( Register );
ADD_METHOD( StepsTypeToLocalizedString );
ADD_METHOD( GetFirstStepsTypeForGame );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -740,8 +740,6 @@ void GameSoundManager::SetPlayerBalance( PlayerNumber pn, RageSoundParams &param
class LunaGameSoundManager: public Luna<GameSoundManager>
{
public:
LunaGameSoundManager() { LUA->Register( Register ); }
static int DimMusic( T* p, lua_State *L )
{
float fVolume = FArg(1);
@@ -751,12 +749,12 @@ public:
}
static int PlayOnce( T* p, lua_State *L ) { RString sPath = SArg(1); p->PlayOnce( sPath ); return 0; }
static void Register(lua_State *L)
LunaGameSoundManager()
{
LUA->Register( Register );
ADD_METHOD( DimMusic );
ADD_METHOD( PlayOnce );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -719,15 +719,13 @@ bool IsAnyPlayerUsingMemoryCard()
class LunaMemoryCardManager: public Luna<MemoryCardManager>
{
public:
LunaMemoryCardManager() { LUA->Register( Register ); }
static int IsAnyPlayerUsingMemoryCard( T* p, lua_State *L ) { lua_pushboolean(L, ::IsAnyPlayerUsingMemoryCard() ); return 1; }
static void Register(lua_State *L)
LunaMemoryCardManager()
{
ADD_METHOD( IsAnyPlayerUsingMemoryCard );
LUA->Register( Register );
Luna<T>::Register( L );
ADD_METHOD( IsAnyPlayerUsingMemoryCard );
}
};
+3 -5
View File
@@ -302,19 +302,17 @@ void MessageSubscriber::UnsubscribeAll()
class LunaMessageManager: public Luna<MessageManager>
{
public:
LunaMessageManager() { LUA->Register( Register ); }
static int Broadcast( T* p, lua_State *L )
{
p->Broadcast( SArg(1) );
return 0;
}
static void Register(lua_State *L)
LunaMessageManager()
{
ADD_METHOD( Broadcast );
LUA->Register( Register );
Luna<T>::Register( L );
ADD_METHOD( Broadcast );
}
};
+3 -5
View File
@@ -788,15 +788,13 @@ bool Model::MaterialsNeedNormals() const
class LunaModel: public Luna<Model>
{
public:
LunaModel() { LUA->Register( Register ); }
static int playanimation( T* p, lua_State *L ) { p->PlayAnimation(SArg(1),FArg(2)); return 0; }
static void Register(lua_State *L)
LunaModel()
{
ADD_METHOD( playanimation );
LUA->Register( Register );
Luna<T>::Register( L );
ADD_METHOD( playanimation );
}
};
+3 -5
View File
@@ -320,19 +320,17 @@ RString NoteSkinManager::GetPathFromDirAndFile( const RString &sDir, const RStri
class LunaNoteSkinManager: public Luna<NoteSkinManager>
{
public:
LunaNoteSkinManager() { LUA->Register( Register ); }
static int GetPath( T* p, lua_State *L ) { lua_pushstring(L, p->GetPath(SArg(1),SArg(2)) ); return 1; }
static int GetMetricA( T* p, lua_State *L ) { p->GetMetricA(SArg(1),SArg(2))->PushSelf(L); return 1; }
DEFINE_METHOD( GetGameBaseNoteSkinName, GAME_BASE_NOTESKIN_NAME.GetValue() )
static void Register(lua_State *L)
LunaNoteSkinManager()
{
LUA->Register( Register );
ADD_METHOD( GetPath );
ADD_METHOD( GetMetricA );
ADD_METHOD( GetGameBaseNoteSkinName );
Luna<T>::Register( L );
}
};
+3 -4
View File
@@ -145,14 +145,13 @@ void OptionIconRow::SetFromGameState( PlayerNumber pn )
class LunaOptionIconRow: public Luna<OptionIconRow>
{
public:
LunaOptionIconRow() { LUA->Register( Register ); }
static int set( T* p, lua_State *L ) { p->SetFromGameState( Enum::Check<PlayerNumber>(L, 1) ); return 0; }
static void Register(lua_State *L)
LunaOptionIconRow()
{
ADD_METHOD( set );
LUA->Register( Register );
Luna<T>::Register( L );
ADD_METHOD( set );
}
};
+3 -5
View File
@@ -556,8 +556,6 @@ float PrefsManager::GetSoundVolume()
class LunaPrefsManager: public Luna<PrefsManager>
{
public:
LunaPrefsManager() { LUA->Register( Register ); }
static int GetPreference( T* p, lua_State *L )
{
RString sName = SArg(1);
@@ -603,13 +601,13 @@ public:
return 0;
}
static void Register(lua_State *L)
LunaPrefsManager()
{
LUA->Register( Register );
ADD_METHOD( GetPreference );
ADD_METHOD( SetPreference );
ADD_METHOD( SetPreferenceToDefault );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -184,8 +184,6 @@ RString RageInput::GetDisplayDevicesString() const
class LunaRageInput: public Luna<RageInput>
{
public:
LunaRageInput() { LUA->Register( Register ); }
static int GetDescriptions( T* p, lua_State *L )
{
vector<InputDeviceInfo> vDevices;
@@ -197,11 +195,11 @@ public:
return 1;
}
static void Register(lua_State *L)
LunaRageInput()
{
ADD_METHOD( GetDescriptions );
LUA->Register( Register );
Luna<T>::Register( L );
ADD_METHOD( GetDescriptions );
}
};
+3 -3
View File
@@ -65,13 +65,13 @@ void RollingNumbers::UpdateText()
class LunaRollingNumbers: public Luna<RollingNumbers>
{
public:
LunaRollingNumbers() { LUA->Register( Register ); }
static int targetnumber( T* p, lua_State *L ) { p->SetTargetNumber( FArg(1) ); return 0; }
static void Register(lua_State *L)
LunaRollingNumbers()
{
LUA->Register( Register );
ADD_METHOD( targetnumber );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -926,8 +926,6 @@ void ScreenManager::PlaySharedBackgroundOffCommand()
class LunaScreenManager: public Luna<ScreenManager>
{
public:
LunaScreenManager() { LUA->Register( Register ); }
// Note: PrepareScreen binding is not allowed; loading data inside
// Lua causes the Lua lock to be held for the duration of the load,
// which blocks concurrent rendering
@@ -945,15 +943,15 @@ public:
static int ConcurrentlyPrepareScreen( T* p, lua_State *L ) { p->ConcurrentlyPrepareScreen( SArg(1) ); return 0; }
static int ScreenIsPrepped( T* p, lua_State *L ) { lua_pushboolean( L, ScreenManagerUtil::ScreenIsPrepped( SArg(1) ) ); return 1; }
static void Register(lua_State *L)
LunaScreenManager()
{
LUA->Register( Register );
ADD_METHOD( SetNewScreen );
ADD_METHOD( GetTopScreen );
ADD_METHOD( SystemMessage );
ADD_METHOD( ConcurrentlyPrepareScreen );
ADD_METHOD( ScreenIsPrepped );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -1804,8 +1804,6 @@ int FindCourseIndexOfSameMode( T begin, T end, const Course *p )
class LunaSongManager: public Luna<SongManager>
{
public:
LunaSongManager() { LUA->Register( Register ); }
static int GetAllSongs( T* p, lua_State *L )
{
const vector<Song*> &v = p->GetAllSongs();
@@ -1876,8 +1874,10 @@ public:
return 4;
}
static void Register(lua_State *L)
LunaSongManager()
{
LUA->Register( Register );
ADD_METHOD( GetAllSongs );
ADD_METHOD( GetAllCourses );
ADD_METHOD( FindSong );
@@ -1896,8 +1896,6 @@ public:
ADD_METHOD( GetSongRank );
ADD_METHOD( GetCourseRank );
ADD_METHOD( GetExtraStageInfo );
Luna<T>::Register( L );
}
};
+4 -5
View File
@@ -901,8 +901,6 @@ void Sprite::AddImageCoords( float fX, float fY )
class LunaSprite: public Luna<Sprite>
{
public:
LunaSprite() { LUA->Register( Register ); }
static int Load( T* p, lua_State *L )
{
RageTextureID ID( SArg(1) );
@@ -941,7 +939,10 @@ public:
return 1;
}
static void Register(lua_State *L) {
LunaSprite()
{
LUA->Register( Register );
ADD_METHOD( Load );
ADD_METHOD( LoadBanner );
ADD_METHOD( LoadBackground );
@@ -953,8 +954,6 @@ public:
ADD_METHOD( setstate );
ADD_METHOD( GetAnimationLengthSeconds );
ADD_METHOD( GetTexture );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -277,23 +277,21 @@ void StageStats::CommitScores( bool bSummary )
class LunaStageStats: public Luna<StageStats>
{
public:
LunaStageStats() { LUA->Register( Register ); }
static int GetPlayerStageStats( T* p, lua_State *L ) { p->m_player[Enum::Check<PlayerNumber>(L, 1)].PushSelf(L); return 1; }
static int GetMultiPlayerStageStats( T* p, lua_State *L ) { p->m_multiPlayer[Enum::Check<MultiPlayer>(L, 1)].PushSelf(L); return 1; }
static int GetGameplaySeconds( T* p, lua_State *L ) { lua_pushnumber(L, p->fGameplaySeconds); return 1; }
static int OnePassed( T* p, lua_State *L ) { lua_pushboolean(L, p->OnePassed()); return 1; }
static int AllFailed( T* p, lua_State *L ) { lua_pushboolean(L, p->AllFailed()); return 1; }
static void Register(lua_State *L)
LunaStageStats()
{
LUA->Register( Register );
ADD_METHOD( GetPlayerStageStats );
ADD_METHOD( GetMultiPlayerStageStats );
ADD_METHOD( GetGameplaySeconds );
ADD_METHOD( OnePassed );
ADD_METHOD( AllFailed );
Luna<T>::Register( L );
}
};
+3 -6
View File
@@ -217,8 +217,6 @@ void StatsManager::CommitStatsToProfiles()
class LunaStatsManager: public Luna<StatsManager>
{
public:
LunaStatsManager() { LUA->Register( Register ); }
static int GetCurStageStats( T* p, lua_State *L ) { p->m_CurStageStats.PushSelf(L); return 1; }
static int GetAccumPlayedStageStats( T* p, lua_State *L ) { p->GetAccumPlayedStageStats().PushSelf(L); return 1; }
static int Reset( T* p, lua_State *L ) { p->Reset(); return 0; }
@@ -256,9 +254,10 @@ public:
return 1;
}
static void Register(lua_State *L)
LunaStatsManager()
{
LUA->Register( Register );
ADD_METHOD( GetCurStageStats );
ADD_METHOD( GetAccumPlayedStageStats );
ADD_METHOD( Reset );
@@ -266,8 +265,6 @@ public:
ADD_METHOD( GetStagesPlayed );
ADD_METHOD( GetBestGrade );
ADD_METHOD( GetWorstGrade );
Luna<T>::Register( L );
}
};
+3 -5
View File
@@ -1157,8 +1157,6 @@ RString ThemeManager::GetBlankGraphicPath()
class LunaThemeManager: public Luna<ThemeManager>
{
public:
LunaThemeManager() { LUA->Register( Register ); }
static int GetMetric( T* p, lua_State *L ) { p->PushMetric( L, SArg(1),SArg(2) ); return 1; }
static int GetString( T* p, lua_State *L ) { lua_pushstring(L, p->GetString(SArg(1),SArg(2)) ); return 1; }
static int GetPathG( T* p, lua_State *L ) { lua_pushstring(L, p->GetPathG(SArg(1),SArg(2)) ); return 1; }
@@ -1166,16 +1164,16 @@ public:
static int GetPathS( T* p, lua_State *L ) { lua_pushstring(L, p->GetPathS(SArg(1),SArg(2)) ); return 1; }
static int GetNumSelectableThemes( T* p, lua_State *L ) { lua_pushnumber(L, p->GetNumSelectableThemes() ); return 1; }
static void Register(lua_State *L)
LunaThemeManager()
{
LUA->Register( Register );
ADD_METHOD( GetMetric );
ADD_METHOD( GetString );
ADD_METHOD( GetPathG );
ADD_METHOD( GetPathB );
ADD_METHOD( GetPathS );
ADD_METHOD( GetNumSelectableThemes );
Luna<T>::Register( L );
}
};
+6 -10
View File
@@ -699,23 +699,21 @@ void UnlockManager::GetStepsUnlockedByEntryID( vector<Song *> &apSongsOut, vecto
class LunaUnlockEntry: public Luna<UnlockEntry>
{
public:
LunaUnlockEntry() { LUA->Register( Register ); }
static int IsLocked( T* p, lua_State *L ) { lua_pushboolean(L, p->IsLocked() ); return 1; }
static int GetDescription( T* p, lua_State *L ) { lua_pushstring(L, p->GetDescription() ); return 1; }
static int GetUnlockRewardType( T* p, lua_State *L ) { lua_pushnumber(L, p->m_Type ); return 1; }
static int GetRequirement( T* p, lua_State *L ) { UnlockRequirement i = Enum::Check<UnlockRequirement>( L, 1 ); lua_pushnumber(L, p->m_fRequirement[i] ); return 1; }
static int GetRequirePassHardSteps( T* p, lua_State *L ){ lua_pushboolean(L, p->m_bRequirePassHardSteps); return 1; }
static void Register(lua_State *L)
LunaUnlockEntry()
{
LUA->Register( Register );
ADD_METHOD( IsLocked );
ADD_METHOD( GetDescription );
ADD_METHOD( GetUnlockRewardType );
ADD_METHOD( GetRequirement );
ADD_METHOD( GetRequirePassHardSteps );
Luna<T>::Register( L );
}
};
@@ -724,8 +722,6 @@ LUA_REGISTER_CLASS( UnlockEntry )
class LunaUnlockManager: public Luna<UnlockManager>
{
public:
LunaUnlockManager() { LUA->Register( Register ); }
static int FindEntryID( T* p, lua_State *L ) { RString sName = SArg(1); RString s = p->FindEntryID(sName); if( s.empty() ) lua_pushnil(L); else lua_pushstring(L, s); return 1; }
static int UnlockEntryID( T* p, lua_State *L ) { RString sUnlockEntryID = SArg(1); p->UnlockEntryID(sUnlockEntryID); return 0; }
static int UnlockEntryIndex( T* p, lua_State *L ) { int iUnlockEntryID = IArg(1); p->UnlockEntryIndex(iUnlockEntryID); return 0; }
@@ -753,8 +749,10 @@ public:
return 2;
}
static void Register(lua_State *L)
LunaUnlockManager()
{
LUA->Register( Register );
ADD_METHOD( FindEntryID );
ADD_METHOD( UnlockEntryID );
ADD_METHOD( UnlockEntryIndex );
@@ -765,8 +763,6 @@ public:
ADD_METHOD( GetUnlockEntry );
ADD_METHOD( GetSongsUnlockedByEntryID );
ADD_METHOD( GetStepsUnlockedByEntryID );
Luna<T>::Register( L );
}
};