add NoteDataUtil::TransformNoteData

This commit is contained in:
Glenn Maynard
2003-08-13 19:17:28 +00:00
parent 2ed5c8d339
commit 57983c6d70
3 changed files with 36 additions and 28 deletions
+31 -1
View File
@@ -13,7 +13,7 @@
#include "NoteDataUtil.h"
#include "RageUtil.h"
#include "RageLog.h"
#include "PlayerOptions.h"
NoteType NoteDataUtil::GetSmallestNoteTypeForMeasure( const NoteData &n, int iMeasureIndex )
{
@@ -890,3 +890,33 @@ void NoteDataUtil::Mines( NoteData &in )
in.SetTapNote(t,r,TAP_MINE);
}
}
void NoteDataUtil::TransformNoteData( NoteData &nd, PlayerOptions &po, StepsType st )
{
if( !po.m_bHoldNotes )
RemoveHoldNotes( nd );
switch( po.m_Turn )
{
case PlayerOptions::TURN_NONE: break;
case PlayerOptions::TURN_MIRROR: NoteDataUtil::Turn( nd, st, NoteDataUtil::mirror ); break;
case PlayerOptions::TURN_LEFT: NoteDataUtil::Turn( nd, st, NoteDataUtil::left ); break;
case PlayerOptions::TURN_RIGHT: NoteDataUtil::Turn( nd, st, NoteDataUtil::right ); break;
case PlayerOptions::TURN_SHUFFLE: NoteDataUtil::Turn( nd, st, NoteDataUtil::shuffle ); break;
case PlayerOptions::TURN_SUPER_SHUFFLE: NoteDataUtil::Turn( nd, st, NoteDataUtil::super_shuffle ); break;
default: ASSERT(0);
}
switch( po.m_Transform )
{
case PlayerOptions::TRANSFORM_NONE: break;
case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(nd); break;
case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(nd); break;
case PlayerOptions::TRANSFORM_BIG: NoteDataUtil::Big(nd); break;
case PlayerOptions::TRANSFORM_QUICK: NoteDataUtil::Quick(nd); break;
case PlayerOptions::TRANSFORM_SKIPPY: NoteDataUtil::Skippy(nd); break;
case PlayerOptions::TRANSFORM_MINES: NoteDataUtil::Mines(nd); break;
default: ASSERT(0);
}
}
+3
View File
@@ -18,6 +18,7 @@
#include "NoteTypes.h"
#include "NoteData.h"
struct PlayerOptions;
/* Utils for NoteData. Things should go in here if they can be (cleanly and
* efficiently) implemented using only NoteData's primitives; this improves
@@ -74,6 +75,8 @@ namespace NoteDataUtil
// Remove all tap notes that fail this mask
void EliminateNonPassingTaps( NoteData &in, int row, const bool bValidMask[] );
void TransformNoteData( NoteData &nd, PlayerOptions &po, StepsType st );
};
#endif
+2 -27
View File
@@ -122,33 +122,8 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, Combine
if( m_pScore )
m_pScore->Init( pn );
if( !GAMESTATE->m_PlayerOptions[pn].m_bHoldNotes )
NoteDataUtil::RemoveHoldNotes(*this);
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
switch( GAMESTATE->m_PlayerOptions[pn].m_Turn )
{
case PlayerOptions::TURN_NONE: break;
case PlayerOptions::TURN_MIRROR: NoteDataUtil::Turn( *this, st, NoteDataUtil::mirror ); break;
case PlayerOptions::TURN_LEFT: NoteDataUtil::Turn( *this, st, NoteDataUtil::left ); break;
case PlayerOptions::TURN_RIGHT: NoteDataUtil::Turn( *this, st, NoteDataUtil::right ); break;
case PlayerOptions::TURN_SHUFFLE: NoteDataUtil::Turn( *this, st, NoteDataUtil::shuffle ); break;
case PlayerOptions::TURN_SUPER_SHUFFLE: NoteDataUtil::Turn( *this, st, NoteDataUtil::super_shuffle ); break;
default: ASSERT(0);
}
switch( GAMESTATE->m_PlayerOptions[pn].m_Transform )
{
case PlayerOptions::TRANSFORM_NONE: break;
case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(*this); break;
case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(*this); break;
case PlayerOptions::TRANSFORM_BIG: NoteDataUtil::Big(*this); break;
case PlayerOptions::TRANSFORM_QUICK: NoteDataUtil::Quick(*this); break;
case PlayerOptions::TRANSFORM_SKIPPY: NoteDataUtil::Skippy(*this); break;
case PlayerOptions::TRANSFORM_MINES: NoteDataUtil::Mines(*this); break;
default: ASSERT(0);
}
/* Apply transforms. */
NoteDataUtil::TransformNoteData( *this, GAMESTATE->m_PlayerOptions[pn], GAMESTATE->GetCurrentStyleDef()->m_StepsType );
int iStartDrawingAtPixels = GAMESTATE->m_bEditing ? -100 : START_DRAWING_AT_PIXELS;
int iStopDrawingAtPixels = GAMESTATE->m_bEditing ? 400 : STOP_DRAWING_AT_PIXELS;