add ActorScroller::LoadFromIni
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
#include "ActorCollision.h"
|
#include "ActorCollision.h"
|
||||||
#include "RageUtil.h"
|
#include "RageUtil.h"
|
||||||
#include "RageDisplay.h"
|
#include "RageDisplay.h"
|
||||||
|
#include "IniFile.h"
|
||||||
|
#include "arch/Dialog/Dialog.h"
|
||||||
|
|
||||||
ActorScroller::ActorScroller()
|
ActorScroller::ActorScroller()
|
||||||
{
|
{
|
||||||
@@ -37,6 +39,50 @@ void ActorScroller::Load(
|
|||||||
m_bLoaded = true;
|
m_bLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ActorScroller::LoadFromIni( const IniFile &ini, const CString &sKey )
|
||||||
|
{
|
||||||
|
#define REQUIRED_GET_VALUE( szName, valueOut ) \
|
||||||
|
if( !ini.GetValue( sKey, szName, valueOut ) ) \
|
||||||
|
Dialog::OK( ssprintf("File '%s' is missing the value Scroller::%s", ini.GetPath().c_str(), szName) );
|
||||||
|
|
||||||
|
float fSecondsPerItem = 1;
|
||||||
|
int iNumItemsToDraw = 7;
|
||||||
|
RageVector3 vRotationDegrees = RageVector3(0,0,0);
|
||||||
|
RageVector3 vTranslateTerm0 = RageVector3(0,0,0);
|
||||||
|
RageVector3 vTranslateTerm1 = RageVector3(0,0,0);
|
||||||
|
RageVector3 vTranslateTerm2 = RageVector3(0,0,0);
|
||||||
|
float fItemPaddingStart = 0;
|
||||||
|
float fItemPaddingEnd = 0;
|
||||||
|
|
||||||
|
REQUIRED_GET_VALUE( "SecondsPerItem", fSecondsPerItem );
|
||||||
|
REQUIRED_GET_VALUE( "NumItemsToDraw", iNumItemsToDraw );
|
||||||
|
REQUIRED_GET_VALUE( "RotationDegreesX", vRotationDegrees[0] );
|
||||||
|
REQUIRED_GET_VALUE( "RotationDegreesY", vRotationDegrees[1] );
|
||||||
|
REQUIRED_GET_VALUE( "RotationDegreesZ", vRotationDegrees[2] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm0X", vTranslateTerm0[0] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm0Y", vTranslateTerm0[1] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm0Z", vTranslateTerm0[2] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm1X", vTranslateTerm1[0] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm1Y", vTranslateTerm1[1] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm1Z", vTranslateTerm1[2] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm2X", vTranslateTerm2[0] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm2Y", vTranslateTerm2[1] );
|
||||||
|
REQUIRED_GET_VALUE( "TranslateTerm2Z", vTranslateTerm2[2] );
|
||||||
|
REQUIRED_GET_VALUE( "ItemPaddingStart", fItemPaddingStart );
|
||||||
|
REQUIRED_GET_VALUE( "ItemPaddingEnd", fItemPaddingEnd );
|
||||||
|
#undef REQUIRED_GET_VALUE
|
||||||
|
|
||||||
|
Load(
|
||||||
|
fSecondsPerItem,
|
||||||
|
iNumItemsToDraw,
|
||||||
|
vRotationDegrees,
|
||||||
|
vTranslateTerm0,
|
||||||
|
vTranslateTerm1,
|
||||||
|
vTranslateTerm2 );
|
||||||
|
SetCurrentAndDestinationItem( int(-fItemPaddingStart) );
|
||||||
|
SetDestinationItem( int(m_SubActors.size()-1+fItemPaddingEnd) );
|
||||||
|
}
|
||||||
|
|
||||||
void ActorScroller::Update( float fDeltaTime )
|
void ActorScroller::Update( float fDeltaTime )
|
||||||
{
|
{
|
||||||
ActorFrame::Update( fDeltaTime );
|
ActorFrame::Update( fDeltaTime );
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "ActorFrame.h"
|
#include "ActorFrame.h"
|
||||||
|
|
||||||
|
class IniFile;
|
||||||
|
|
||||||
class ActorScroller : public ActorFrame
|
class ActorScroller : public ActorFrame
|
||||||
{
|
{
|
||||||
@@ -22,6 +23,7 @@ public:
|
|||||||
virtual void Update( float fDelta );
|
virtual void Update( float fDelta );
|
||||||
virtual void DrawPrimitives(); // DOES draw
|
virtual void DrawPrimitives(); // DOES draw
|
||||||
|
|
||||||
|
void LoadFromIni( const IniFile &ini, const CString &sKey );
|
||||||
void SetDestinationItem( int iItem ) { m_fDestinationItem = float(iItem); }
|
void SetDestinationItem( int iItem ) { m_fDestinationItem = float(iItem); }
|
||||||
void SetCurrentAndDestinationItem( int iItem ) { m_fCurrentItem = m_fDestinationItem = float(iItem); }
|
void SetCurrentAndDestinationItem( int iItem ) { m_fCurrentItem = m_fDestinationItem = float(iItem); }
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
#include "RageFile.h"
|
#include "RageFile.h"
|
||||||
#include "ActorUtil.h"
|
#include "ActorUtil.h"
|
||||||
#include "LuaHelpers.h"
|
#include "LuaHelpers.h"
|
||||||
#include "arch/Dialog/Dialog.h"
|
|
||||||
#include "Foreach.h"
|
#include "Foreach.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -150,48 +149,7 @@ void BGAnimation::LoadFromAniDir( CString sAniDir )
|
|||||||
bool bUseScroller;
|
bool bUseScroller;
|
||||||
if( ini.GetValue( "BGAnimation", "UseScroller", bUseScroller ) && bUseScroller )
|
if( ini.GetValue( "BGAnimation", "UseScroller", bUseScroller ) && bUseScroller )
|
||||||
{
|
{
|
||||||
// TODO: Move this into ActorScroller
|
ActorScroller::LoadFromIni( ini, "Scroller" );
|
||||||
|
|
||||||
#define REQUIRED_GET_VALUE( szName, valueOut ) \
|
|
||||||
if( !ini.GetValue( "Scroller", szName, valueOut ) ) \
|
|
||||||
Dialog::OK( ssprintf("File '%s' is missing the value Scroller::%s", sPathToIni.c_str(), szName) );
|
|
||||||
|
|
||||||
float fSecondsPerItem = 1;
|
|
||||||
int iNumItemsToDraw = 7;
|
|
||||||
RageVector3 vRotationDegrees = RageVector3(0,0,0);
|
|
||||||
RageVector3 vTranslateTerm0 = RageVector3(0,0,0);
|
|
||||||
RageVector3 vTranslateTerm1 = RageVector3(0,0,0);
|
|
||||||
RageVector3 vTranslateTerm2 = RageVector3(0,0,0);
|
|
||||||
float fItemPaddingStart = 0;
|
|
||||||
float fItemPaddingEnd = 0;
|
|
||||||
|
|
||||||
REQUIRED_GET_VALUE( "SecondsPerItem", fSecondsPerItem );
|
|
||||||
REQUIRED_GET_VALUE( "NumItemsToDraw", iNumItemsToDraw );
|
|
||||||
REQUIRED_GET_VALUE( "RotationDegreesX", vRotationDegrees[0] );
|
|
||||||
REQUIRED_GET_VALUE( "RotationDegreesY", vRotationDegrees[1] );
|
|
||||||
REQUIRED_GET_VALUE( "RotationDegreesZ", vRotationDegrees[2] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm0X", vTranslateTerm0[0] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm0Y", vTranslateTerm0[1] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm0Z", vTranslateTerm0[2] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm1X", vTranslateTerm1[0] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm1Y", vTranslateTerm1[1] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm1Z", vTranslateTerm1[2] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm2X", vTranslateTerm2[0] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm2Y", vTranslateTerm2[1] );
|
|
||||||
REQUIRED_GET_VALUE( "TranslateTerm2Z", vTranslateTerm2[2] );
|
|
||||||
REQUIRED_GET_VALUE( "ItemPaddingStart", fItemPaddingStart );
|
|
||||||
REQUIRED_GET_VALUE( "ItemPaddingEnd", fItemPaddingEnd );
|
|
||||||
#undef REQUIRED_GET_VALUE
|
|
||||||
|
|
||||||
ActorScroller::Load(
|
|
||||||
fSecondsPerItem,
|
|
||||||
iNumItemsToDraw,
|
|
||||||
vRotationDegrees,
|
|
||||||
vTranslateTerm0,
|
|
||||||
vTranslateTerm1,
|
|
||||||
vTranslateTerm2 );
|
|
||||||
ActorScroller::SetCurrentAndDestinationItem( int(-fItemPaddingStart) );
|
|
||||||
ActorScroller::SetDestinationItem( int(m_SubActors.size()-1+fItemPaddingEnd) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CString sInitCommand;
|
CString sInitCommand;
|
||||||
|
|||||||
Reference in New Issue
Block a user