use LuaThreadVariable
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor
|
||||
File="File1"
|
||||
File="Var 'File1'"
|
||||
OnCommand="x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y"
|
||||
/>
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor File="File1" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor File="File1" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File2" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File2" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File2'" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File2'" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor File="File1" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2;zoomx,self:GetZoomX()*-1" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2;zoomy,self:GetZoomY()*-1" />
|
||||
<AutoActor File="File1" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2;zoomx,self:GetZoomX()*-1;zoomy,self:GetZoomY()*-1" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(1,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2;zoomx,self:GetZoomX()*-1" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(1,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2;zoomy,self:GetZoomY()*-1" />
|
||||
<AutoActor File="Var 'File1'" OnCommand="x,scale(3,0,4,SCREEN_LEFT,SCREEN_RIGHT);y,scale(3,0,4,SCREEN_TOP,SCREEN_BOTTOM);zoomtowidth,SCREEN_WIDTH/2;zoomtoheight,SCREEN_HEIGHT/2;zoomx,self:GetZoomX()*-1;zoomy,self:GetZoomY()*-1" />
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<ActorFrame><children>
|
||||
<Layer
|
||||
Type="@Sprite"
|
||||
InitCommand="%function(self) self:LoadBackground( GAMESTATE:GetCurrentSong():GetBackgroundPath() ) self.Color = Color1 end"
|
||||
InitCommand="%function(self) self:LoadBackground( GAMESTATE:GetCurrentSong():GetBackgroundPath() ) self.Color = Var 'Color1' end"
|
||||
OnCommand="x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;ZoomToWidth,SCREEN_WIDTH;ZoomToHeight,SCREEN_HEIGHT;diffuse,color(self.Color)"
|
||||
/>
|
||||
<Layer
|
||||
File="File1"
|
||||
InitCommand="%function(self) self:pause(); self.Color = Color2; end"
|
||||
File="Var 'File1'"
|
||||
InitCommand="%function(self) self:pause(); self.Color = Var 'Color2'; end"
|
||||
OnCommand="blend,add;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;ZoomToWidth,SCREEN_WIDTH;ZoomToHeight,SCREEN_HEIGHT;diffuse,color(self.Color)"
|
||||
GainFocusCommand="Play"
|
||||
LoseFocusCommand="Pause"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor
|
||||
File="File1"
|
||||
File="Var 'File1'"
|
||||
OnCommand="scale_or_crop_background;loop,0"
|
||||
/>
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<ActorFrame><children>
|
||||
<Layer
|
||||
File="File1"
|
||||
InitCommand="%function(self) self.Color = Color1; end"
|
||||
File="Var 'File1'"
|
||||
InitCommand="%function(self) self.Color = Var 'Color1'; end"
|
||||
OnCommand="scale_or_crop_background;diffuse,color(self.Color)"
|
||||
GainFocusCommand="Play"
|
||||
LoseFocusCommand="Pause"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!-- Align left when cropping to 4:3. Avoid this; it's not compatible with PS2 movie pre-rendering. -->
|
||||
<ActorFrame><children>
|
||||
<Layer
|
||||
File="File1"
|
||||
InitCommand="%function(self) self.Color = Color1; end"
|
||||
File="Var 'File1'"
|
||||
InitCommand="%function(self) self.Color = Var 'Color1'; end"
|
||||
OnCommand="horizalign,left;scaletocover,0,0,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,color(self.Color)"
|
||||
GainFocusCommand="Play"
|
||||
LoseFocusCommand="Pause"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor
|
||||
File="File1"
|
||||
File="Var 'File1'"
|
||||
OnCommand="scale_or_crop_background;Pause"
|
||||
/>
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ActorFrame><children>
|
||||
<AutoActor
|
||||
File="File1"
|
||||
File="Var 'File1'"
|
||||
OnCommand="scale_or_crop_background;position,0"
|
||||
/>
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<ActorFrame><children>
|
||||
<!-- upper left corner -->
|
||||
<AutoActor File="File1" />
|
||||
<AutoActor File="Var 'File1'" />
|
||||
</children></ActorFrame>
|
||||
|
||||
@@ -295,12 +295,13 @@ bool BackgroundImpl::Layer::CreateBackground( const Song *pSong, const Backgroun
|
||||
|
||||
vector<RString> vsResolved;
|
||||
vsResolved.resize( vsToResolve.size() );
|
||||
vector<LuaThreadVariable *> vsResolvedRef;
|
||||
vsResolvedRef.resize( vsToResolve.size() );
|
||||
|
||||
for( unsigned i=0; i<vsToResolve.size(); i++ )
|
||||
{
|
||||
const RString &sToResolve = vsToResolve[i];
|
||||
|
||||
LUA->UnsetGlobal( ssprintf("File%d",i+1) ); // clear
|
||||
|
||||
if( sToResolve.empty() )
|
||||
{
|
||||
if( i == 0 )
|
||||
@@ -341,7 +342,7 @@ bool BackgroundImpl::Layer::CreateBackground( const Song *pSong, const Backgroun
|
||||
|
||||
ASSERT( !sResolved.empty() );
|
||||
|
||||
LUA->SetGlobal( ssprintf("File%d",i+1), sResolved );
|
||||
vsResolvedRef[i] = new LuaThreadVariable( ssprintf("File%d",i+1), sResolved );
|
||||
}
|
||||
|
||||
RString sEffect = bd.m_sEffect;
|
||||
@@ -369,8 +370,8 @@ bool BackgroundImpl::Layer::CreateBackground( const Song *pSong, const Backgroun
|
||||
|
||||
|
||||
// Set Lua color globals
|
||||
LUA->SetGlobal( "Color1", bd.m_sColor1.empty() ? RString("1,1,1,1") : bd.m_sColor1 );
|
||||
LUA->SetGlobal( "Color2", bd.m_sColor2.empty() ? RString("1,1,1,1") : bd.m_sColor2 );
|
||||
LuaThreadVariable sColor1( "Color1", bd.m_sColor1.empty() ? RString("1,1,1,1") : bd.m_sColor1 );
|
||||
LuaThreadVariable sColor2( "Color2", bd.m_sColor2.empty() ? RString("1,1,1,1") : bd.m_sColor2 );
|
||||
|
||||
|
||||
// Resolve the effect file.
|
||||
@@ -403,10 +404,8 @@ bool BackgroundImpl::Layer::CreateBackground( const Song *pSong, const Backgroun
|
||||
ASSERT( pActor );
|
||||
m_BGAnimations[bd] = pActor;
|
||||
|
||||
for( unsigned i=0; i<vsResolved.size(); i++ )
|
||||
LUA->UnsetGlobal( ssprintf("File%d",i+1) );
|
||||
LUA->UnsetGlobal( "Color1" );
|
||||
LUA->UnsetGlobal( "Color2" );
|
||||
for( unsigned i=0; i<vsResolvedRef.size(); i++ )
|
||||
delete vsResolvedRef[i];
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -805,17 +804,10 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
|
||||
|
||||
m_pCurrentBGA->SetUpdateRate( change.m_fRate );
|
||||
|
||||
// Set Lua color globals before calling Init and On
|
||||
LUA->SetGlobal( "Color1", change.m_def.m_sColor1.empty() ? RString("1,1,1,1") : change.m_def.m_sColor1 );
|
||||
LUA->SetGlobal( "Color2", change.m_def.m_sColor2.empty() ? RString("1,1,1,1") : change.m_def.m_sColor2 );
|
||||
|
||||
m_pCurrentBGA->InitState();
|
||||
m_pCurrentBGA->PlayCommand( "On" );
|
||||
m_pCurrentBGA->PlayCommand( "GainFocus" );
|
||||
|
||||
LUA->UnsetGlobal( "Color1" );
|
||||
LUA->UnsetGlobal( "Color2" );
|
||||
|
||||
/* How much time of this BGA have we skipped? (This happens with SetSeconds.) */
|
||||
const float fStartSecond = pSong->m_Timing.GetElapsedTimeFromBeat( change.m_fStartBeat );
|
||||
|
||||
|
||||
@@ -124,9 +124,10 @@ namespace ScreenManagerUtil
|
||||
g_ScreenStack.push_back( ls );
|
||||
|
||||
/* Set the name of the loading screen. */
|
||||
LUA->SetGlobal( "LoadingScreen", ls.m_pScreen->GetName() );
|
||||
ls.m_pScreen->BeginScreen();
|
||||
LUA->UnsetGlobal( "LoadingScreen" );
|
||||
{
|
||||
LuaThreadVariable var( "LoadingScreen", ls.m_pScreen->GetName() );
|
||||
ls.m_pScreen->BeginScreen();
|
||||
}
|
||||
|
||||
SCREENMAN->RefreshCreditsMessages();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user