add TapNote SubType instead of a bool for rolls

This commit is contained in:
Chris Danford
2005-04-20 01:53:41 +00:00
parent 43ea0f0205
commit 8ec01b7cb3
5 changed files with 33 additions and 21 deletions
+9 -2
View File
@@ -301,7 +301,14 @@ void NoteDataUtil::GetSMNoteDataString( const NoteData &in_, CString &notes_out
{
case TapNote::empty: c = '0'; break;
case TapNote::tap: c = '1'; break;
case TapNote::hold_head: c = tn.bIsRoll ? '2':'4'; break;
case TapNote::hold_head:
switch( tn.subType )
{
case TapNote::hold_head_hold: c = '2'; break;
case TapNote::hold_head_roll: c = '4'; break;
default: ASSERT(0);
}
break;
case TapNote::hold_tail: c = '3'; break;
case TapNote::mine: c = 'M'; break;
case TapNote::attack: c = 'A'; break;
@@ -1741,7 +1748,7 @@ void NoteDataUtil::AddTapAttacks( NoteData &nd, Song* pSong )
int iTrack = iBeat % nd.GetNumTracks(); // deterministically calculates track
TapNote tn(
TapNote::attack,
false,
TapNote::SubType_invalid,
TapNote::original,
szAttacks[rand()%ARRAYSIZE(szAttacks)],
15.0f,
+5 -5
View File
@@ -541,7 +541,7 @@ void NoteDisplay::DrawHoldTopCap( const TapNote& tn, int iCol, int iRow, bool bI
//
StripBuffer queue;
Sprite* pSprTopCap = GetHoldTopCapSprite( NoteRowToBeat(iRow), tn.bIsRoll, bIsBeingHeld );
Sprite* pSprTopCap = GetHoldTopCapSprite( NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
pSprTopCap->SetZoom( ArrowEffects::GetZoom( m_pPlayerState ) );
@@ -630,7 +630,7 @@ void NoteDisplay::DrawHoldBody( const TapNote& tn, int iCol, int iRow, bool bIsB
//
StripBuffer queue;
Sprite* pSprBody = GetHoldBodySprite( NoteRowToBeat(iRow), tn.bIsRoll, bIsBeingHeld );
Sprite* pSprBody = GetHoldBodySprite( NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
pSprBody->SetZoom( ArrowEffects::GetZoom( m_pPlayerState ) );
@@ -728,7 +728,7 @@ void NoteDisplay::DrawHoldBottomCap( const TapNote& tn, int iCol, int iRow, bool
//
StripBuffer queue;
Sprite* pBottomCap = GetHoldBottomCapSprite( NoteRowToBeat(iRow), tn.bIsRoll, bIsBeingHeld );
Sprite* pBottomCap = GetHoldBottomCapSprite( NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
pBottomCap->SetZoom( ArrowEffects::GetZoom( m_pPlayerState ) );
@@ -810,7 +810,7 @@ void NoteDisplay::DrawHoldTail( const TapNote& tn, int iCol, int iRow, bool bIsB
//
// Draw the tail
//
Actor* pSprTail = GetHoldTailActor( NoteRowToBeat(iRow), tn.bIsRoll, bIsBeingHeld );
Actor* pSprTail = GetHoldTailActor( NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
pSprTail->SetZoom( ArrowEffects::GetZoom( m_pPlayerState ) );
@@ -864,7 +864,7 @@ void NoteDisplay::DrawHoldHead( const TapNote& tn, int iCol, int iRow, bool bIsB
//
// Draw the head
//
Actor* pActor = GetHoldHeadActor( NoteRowToBeat(iRow), tn.bIsRoll, bIsBeingHeld );
Actor* pActor = GetHoldHeadActor( NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
pActor->SetZoom( ArrowEffects::GetZoom( m_pPlayerState ) );
+9 -9
View File
@@ -2,15 +2,15 @@
#include "NoteTypes.h"
#include "RageUtil.h"
TapNote TAP_EMPTY ( TapNote::empty, false, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_TAP ( TapNote::tap, false, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_HOLD_HEAD ( TapNote::hold_head, false, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_ROLL_HEAD ( TapNote::hold_head, true, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_MINE ( TapNote::mine, false, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_ATTACK ( TapNote::attack, false, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_AUTO_KEYSOUND ( TapNote::autoKeysound,false, TapNote::original, "", 0, false, 0 );
TapNote TAP_ADDITION_TAP ( TapNote::tap, false, TapNote::addition, "", 0, false, 0 );
TapNote TAP_ADDITION_MINE ( TapNote::mine, false, TapNote::addition, "", 0, false, 0 );
TapNote TAP_EMPTY ( TapNote::empty, TapNote::SubType_invalid, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_TAP ( TapNote::tap, TapNote::SubType_invalid, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_HOLD_HEAD ( TapNote::hold_head, TapNote::hold_head_hold, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_ROLL_HEAD ( TapNote::hold_head, TapNote::hold_head_roll, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_MINE ( TapNote::mine, TapNote::SubType_invalid, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_ATTACK ( TapNote::attack, TapNote::SubType_invalid, TapNote::original, "", 0, false, 0 );
TapNote TAP_ORIGINAL_AUTO_KEYSOUND ( TapNote::autoKeysound,TapNote::SubType_invalid, TapNote::original, "", 0, false, 0 );
TapNote TAP_ADDITION_TAP ( TapNote::tap, TapNote::SubType_invalid, TapNote::addition, "", 0, false, 0 );
TapNote TAP_ADDITION_MINE ( TapNote::mine, TapNote::SubType_invalid, TapNote::addition, "", 0, false, 0 );
static const CString NoteTypeNames[NUM_NOTE_TYPES] = {
"4th",
+9 -4
View File
@@ -63,7 +63,12 @@ struct TapNote
attack,
autoKeysound,
} type;
bool bIsRoll; // only possibly true if type == hold_head
enum SubType
{
hold_head_hold,
hold_head_roll,
SubType_invalid
} subType; // only used if type == hold_head
enum Source {
original, // part of the original NoteData
addition, // additional note added by a transform
@@ -101,7 +106,7 @@ struct TapNote
TapNote() {}
TapNote(
Type type_,
bool bIsRoll_,
SubType subType_,
Source source_,
CString sAttackModifiers_,
float fAttackDurationSeconds_,
@@ -109,7 +114,7 @@ struct TapNote
int iKeysoundIndex_ )
{
type = type_;
bIsRoll = bIsRoll_;
subType = subType_;
source = source_;
sAttackModifiers = sAttackModifiers_;
fAttackDurationSeconds = fAttackDurationSeconds_;
@@ -121,7 +126,7 @@ struct TapNote
{
#define COMPARE(x) if(x!=other.x) return false;
COMPARE(type);
COMPARE(bIsRoll);
COMPARE(subType);
COMPARE(source);
COMPARE(sAttackModifiers);
COMPARE(fAttackDurationSeconds);
+1 -1
View File
@@ -1632,7 +1632,7 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
TapNote tn(
TapNote::attack,
false,
TapNote::SubType_invalid,
TapNote::original,
sMods,
g_fLastInsertAttackDurationSeconds,