diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index 86512bf4aa..bf9d3394c2 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -937,6 +937,7 @@ void Actor::TweenState::Init() for(int i=0; i<4; i++) diffuse[i] = RageColor( 1, 1, 1, 1 ); glow = RageColor( 1, 1, 1, 0 ); + aux = 0; } void Actor::TweenState::MakeWeightedAverage( TweenState& average_out, const TweenState& ts1, const TweenState& ts2, float fPercentBetween ) @@ -960,6 +961,7 @@ void Actor::TweenState::MakeWeightedAverage( TweenState& average_out, const Twee for(int i=0; i<4; i++) average_out.diffuse[i] = ts1.diffuse[i]+ (ts2.diffuse[i] - ts1.diffuse[i])*fPercentBetween; average_out.glow = ts1.glow + (ts2.glow - ts1.glow )*fPercentBetween; + average_out.aux = ts1.aux + (ts2.aux - ts1.aux )*fPercentBetween; } void Actor::SetBlendModeString( const CString &s ) diff --git a/stepmania/src/Actor.h b/stepmania/src/Actor.h index 585d33485d..c5b79b75b8 100644 --- a/stepmania/src/Actor.h +++ b/stepmania/src/Actor.h @@ -62,6 +62,7 @@ public: RectF fade; // 0 = no fade RageColor diffuse[4]; RageColor glow; + float aux; CString sCommandName; // command to execute when this TweenState goes into effect void Init(); @@ -209,6 +210,8 @@ public: void SetGlow( RageColor c ) { DestTweenState().glow = c; }; RageColor GetGlow() { return DestTweenState().glow; }; + void SetAux( float f ) { DestTweenState().aux = f; } + float GetAux() const { return m_current.aux; } void BeginTweening( float time, TweenType tt = TWEEN_LINEAR ); void StopTweening(); @@ -269,6 +272,7 @@ public: void SetEffectClockString( const CString &s ); // convenience void SetEffectMagnitude( RageVector3 vec ) { m_vEffectMagnitude = vec; } + RageVector3 GetEffectMagnitude() const { return m_vEffectMagnitude; } void SetEffectLua( const CString &sCommand ); void SetEffectDiffuseBlink( @@ -524,9 +528,12 @@ public: static int diffusealpha( T* p, lua_State *L ) { p->SetDiffuseAlpha(FArg(1)); return 0; } static int diffusecolor( T* p, lua_State *L ) { p->SetDiffuseColor( RageColor(FArg(1),FArg(2),FArg(3),FArg(4)) ); return 0; } static int glow( T* p, lua_State *L ) { p->SetGlow( RageColor(FArg(1),FArg(2),FArg(3),FArg(4)) ); return 0; } + static int aux( T* p, lua_State *L ) { p->SetAux( FArg(1) ); return 0; } + static int getaux( T* p, lua_State *L ) { lua_pushnumber( L, p->GetAux() ); return 1; } static int rotationx( T* p, lua_State *L ) { p->SetRotationX(FArg(1)); return 0; } static int rotationy( T* p, lua_State *L ) { p->SetRotationY(FArg(1)); return 0; } static int rotationz( T* p, lua_State *L ) { p->SetRotationZ(FArg(1)); return 0; } + static int getrotation( T* p, lua_State *L ) { lua_pushnumber(L, p->GetRotationX()); lua_pushnumber(L, p->GetRotationY()); lua_pushnumber(L, p->GetRotationZ()); return 3; } static int skewx( T* p, lua_State *L ) { p->SetSkewX(FArg(1)); return 0; } static int heading( T* p, lua_State *L ) { p->AddRotationH(FArg(1)); return 0; } static int pitch( T* p, lua_State *L ) { p->AddRotationP(FArg(1)); return 0; } @@ -555,6 +562,7 @@ public: static int effectdelay( T* p, lua_State *L ) { p->SetEffectDelay(FArg(1)); return 0; } static int effectclock( T* p, lua_State *L ) { p->SetEffectClockString(SArg(1)); return 0; } static int effectmagnitude( T* p, lua_State *L ) { p->SetEffectMagnitude( RageVector3(FArg(1),FArg(2),FArg(3)) ); return 0; } + static int geteffectmagnitude( T* p, lua_State *L ) { RageVector3 v = p->GetEffectMagnitude(); lua_pushnumber(L, v[0]); lua_pushnumber(L, v[1]); lua_pushnumber(L, v[2]); return 3; } static int scaletocover( T* p, lua_State *L ) { p->ScaleToCover( RectF(FArg(1), FArg(2), FArg(3), FArg(4)) ); return 0; } static int scaletofit( T* p, lua_State *L ) { p->ScaleToFitInside( RectF(FArg(1), FArg(2), FArg(3), FArg(4)) ); return 0; } static int animate( T* p, lua_State *L ) { p->EnableAnimation(!!IArg(1)); return 0; } @@ -637,9 +645,12 @@ public: ADD_METHOD( diffusealpha ) ADD_METHOD( diffusecolor ) ADD_METHOD( glow ) + ADD_METHOD( aux ) + ADD_METHOD( getaux ) ADD_METHOD( rotationx ) ADD_METHOD( rotationy ) ADD_METHOD( rotationz ) + ADD_METHOD( getrotation ) ADD_METHOD( skewx ) ADD_METHOD( heading ) ADD_METHOD( pitch ) @@ -668,6 +679,7 @@ public: ADD_METHOD( effectdelay ) ADD_METHOD( effectclock ) ADD_METHOD( effectmagnitude ) + ADD_METHOD( geteffectmagnitude ) ADD_METHOD( scaletocover ) ADD_METHOD( scaletofit ) ADD_METHOD( animate )