diff --git a/Docs/Luadoc/Lua.xml b/Docs/Luadoc/Lua.xml index a18957acd9..4bf2da5bdd 100644 --- a/Docs/Luadoc/Lua.xml +++ b/Docs/Luadoc/Lua.xml @@ -1378,6 +1378,7 @@ + diff --git a/Docs/Luadoc/LuaDocumentation.xml b/Docs/Luadoc/LuaDocumentation.xml index fccc3901db..ef23be984f 100644 --- a/Docs/Luadoc/LuaDocumentation.xml +++ b/Docs/Luadoc/LuaDocumentation.xml @@ -3906,6 +3906,9 @@ save yourself some time, copy this for undocumented things: Tells the screen to go to the previous screen. + + Sets whether the screen allows late joining. This only works for screens that are just ScreenWithMenuElements, as most derived screens have their own hard coded function for whether late joining is allowed. + diff --git a/src/ScreenWithMenuElements.cpp b/src/ScreenWithMenuElements.cpp index f02d2e1cb4..21bfbd140e 100644 --- a/src/ScreenWithMenuElements.cpp +++ b/src/ScreenWithMenuElements.cpp @@ -25,6 +25,7 @@ ScreenWithMenuElements::ScreenWithMenuElements() FOREACH_PlayerNumber( p ) m_MemoryCardDisplay[p] = NULL; m_MenuTimer = NULL; + m_bShouldAllowLateJoin= false; } void ScreenWithMenuElements::Init() @@ -377,11 +378,18 @@ class LunaScreenWithMenuElements: public Luna public: static int Cancel( T* p, lua_State *L ) { p->Cancel( SM_GoToPrevScreen ); return 0; } static int IsTransitioning( T* p, lua_State *L ) { lua_pushboolean( L, p->IsTransitioning() ); return 1; } + static int SetAllowLateJoin( T* p, lua_State *L ) + { + p->m_bShouldAllowLateJoin= BArg(1); + return 0; + } + LunaScreenWithMenuElements() { ADD_METHOD( Cancel ); ADD_METHOD( IsTransitioning ); + ADD_METHOD( SetAllowLateJoin ); } }; diff --git a/src/ScreenWithMenuElements.h b/src/ScreenWithMenuElements.h index 01d55b7b27..2879e96d64 100644 --- a/src/ScreenWithMenuElements.h +++ b/src/ScreenWithMenuElements.h @@ -33,6 +33,9 @@ public: // Lua virtual void PushSelf( lua_State *L ); + virtual bool AllowLateJoin() const { return m_bShouldAllowLateJoin; } + bool m_bShouldAllowLateJoin; // So that it can be exposed to Lua. + protected: virtual void StartPlayingMusic(); void SetHelpText( RString s );