sm124futures: Working tap note cycling.
The code in NoteTypes could use a review: perhaps the Type definition should be taken out of the struct to try to make it more consistent?
This commit is contained in:
+22
-3
@@ -204,9 +204,28 @@ extern TapNote TAP_ORIGINAL_FAKE; // 'F'
|
|||||||
extern TapNote TAP_ADDITION_TAP;
|
extern TapNote TAP_ADDITION_TAP;
|
||||||
extern TapNote TAP_ADDITION_MINE;
|
extern TapNote TAP_ADDITION_MINE;
|
||||||
|
|
||||||
const RString& TapNoteTypeToString( TapNote::Type tn );
|
/**
|
||||||
const RString& TapNoteTypeToLocalizedString( TapNote::Type tn );
|
* @brief Retrieve the string representing the TapNote Type.
|
||||||
LuaDeclareType( TapNote::Type );
|
*
|
||||||
|
* TODO: Find a way to standardize this with the other enum string calls.
|
||||||
|
* @param tn the TapNote's type.
|
||||||
|
* @return the intended string. */
|
||||||
|
inline const RString TapNoteTypeToString( TapNote::Type tn )
|
||||||
|
{
|
||||||
|
switch( tn )
|
||||||
|
{
|
||||||
|
case TapNote::empty: return RString("empty");
|
||||||
|
case TapNote::tap: return RString("tap");
|
||||||
|
case TapNote::hold_head: return RString("hold_head");
|
||||||
|
case TapNote::hold_tail: return RString("hold_tail");
|
||||||
|
case TapNote::mine: return RString("mine");
|
||||||
|
case TapNote::lift: return RString("lift");
|
||||||
|
case TapNote::attack: return RString("attack");
|
||||||
|
case TapNote::autoKeysound: return RString("autoKeysound");
|
||||||
|
case TapNote::fake: return RString("fake");
|
||||||
|
default: return RString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The number of tracks allowed.
|
* @brief The number of tracks allowed.
|
||||||
|
|||||||
+32
-21
@@ -16,6 +16,7 @@
|
|||||||
#include "LocalizedString.h"
|
#include "LocalizedString.h"
|
||||||
#include "NoteDataUtil.h"
|
#include "NoteDataUtil.h"
|
||||||
#include "NoteSkinManager.h"
|
#include "NoteSkinManager.h"
|
||||||
|
#include "NoteTypes.h"
|
||||||
#include "NotesWriterSM.h"
|
#include "NotesWriterSM.h"
|
||||||
#include "PrefsManager.h"
|
#include "PrefsManager.h"
|
||||||
#include "RageSoundManager.h"
|
#include "RageSoundManager.h"
|
||||||
@@ -734,6 +735,8 @@ void ScreenEdit::Init()
|
|||||||
m_bReturnToRecordMenuAfterPlay = false;
|
m_bReturnToRecordMenuAfterPlay = false;
|
||||||
m_fBeatToReturnTo = 0;
|
m_fBeatToReturnTo = 0;
|
||||||
|
|
||||||
|
m_selectedTap = TAP_ORIGINAL_TAP;
|
||||||
|
|
||||||
GAMESTATE->m_bGameplayLeadIn.Set( true );
|
GAMESTATE->m_bGameplayLeadIn.Set( true );
|
||||||
GAMESTATE->m_EditMode = EDIT_MODE.GetValue();
|
GAMESTATE->m_EditMode = EDIT_MODE.GetValue();
|
||||||
GAMESTATE->m_fSongBeat = 0;
|
GAMESTATE->m_fSongBeat = 0;
|
||||||
@@ -1027,6 +1030,7 @@ static LocalizedString DESCRIPTION("ScreenEdit", "Description");
|
|||||||
static LocalizedString CHART_STYLE("ScreenEdit", "Chart Style");
|
static LocalizedString CHART_STYLE("ScreenEdit", "Chart Style");
|
||||||
static LocalizedString MAIN_TITLE("ScreenEdit", "Main title");
|
static LocalizedString MAIN_TITLE("ScreenEdit", "Main title");
|
||||||
static LocalizedString SUBTITLE("ScreenEdit", "Subtitle");
|
static LocalizedString SUBTITLE("ScreenEdit", "Subtitle");
|
||||||
|
static LocalizedString TAP_NOTE_TYPE("ScreenEdit", "Tap Note");
|
||||||
static LocalizedString TAP_STEPS("ScreenEdit", "Tap Steps");
|
static LocalizedString TAP_STEPS("ScreenEdit", "Tap Steps");
|
||||||
static LocalizedString JUMPS("ScreenEdit", "Jumps");
|
static LocalizedString JUMPS("ScreenEdit", "Jumps");
|
||||||
static LocalizedString HANDS("ScreenEdit", "Hands");
|
static LocalizedString HANDS("ScreenEdit", "Hands");
|
||||||
@@ -1051,6 +1055,7 @@ static ThemeMetric<RString> DESCRIPTION_FORMAT("ScreenEdit", "DescriptionFormat"
|
|||||||
static ThemeMetric<RString> CHART_STYLE_FORMAT("ScreenEdit", "ChartStyleFormat");
|
static ThemeMetric<RString> CHART_STYLE_FORMAT("ScreenEdit", "ChartStyleFormat");
|
||||||
static ThemeMetric<RString> MAIN_TITLE_FORMAT("ScreenEdit", "MainTitleFormat");
|
static ThemeMetric<RString> MAIN_TITLE_FORMAT("ScreenEdit", "MainTitleFormat");
|
||||||
static ThemeMetric<RString> SUBTITLE_FORMAT("ScreenEdit", "SubtitleFormat");
|
static ThemeMetric<RString> SUBTITLE_FORMAT("ScreenEdit", "SubtitleFormat");
|
||||||
|
static ThemeMetric<RString> TAP_NOTE_TYPE_FORMAT("ScreenEdit", "TapNoteTypeFormat");
|
||||||
static ThemeMetric<RString> NUM_STEPS_FORMAT("ScreenEdit", "NumStepsFormat");
|
static ThemeMetric<RString> NUM_STEPS_FORMAT("ScreenEdit", "NumStepsFormat");
|
||||||
static ThemeMetric<RString> NUM_JUMPS_FORMAT("ScreenEdit", "NumJumpsFormat");
|
static ThemeMetric<RString> NUM_JUMPS_FORMAT("ScreenEdit", "NumJumpsFormat");
|
||||||
static ThemeMetric<RString> NUM_HOLDS_FORMAT("ScreenEdit", "NumHoldsFormat");
|
static ThemeMetric<RString> NUM_HOLDS_FORMAT("ScreenEdit", "NumHoldsFormat");
|
||||||
@@ -1119,6 +1124,7 @@ void ScreenEdit::UpdateTextInfo()
|
|||||||
sText += ssprintf( MAIN_TITLE_FORMAT.GetValue(), MAIN_TITLE.GetValue().c_str(), m_pSong->m_sMainTitle.c_str() );
|
sText += ssprintf( MAIN_TITLE_FORMAT.GetValue(), MAIN_TITLE.GetValue().c_str(), m_pSong->m_sMainTitle.c_str() );
|
||||||
if( m_pSong->m_sSubTitle.size() )
|
if( m_pSong->m_sSubTitle.size() )
|
||||||
sText += ssprintf( SUBTITLE_FORMAT.GetValue(), SUBTITLE.GetValue().c_str(), m_pSong->m_sSubTitle.c_str() );
|
sText += ssprintf( SUBTITLE_FORMAT.GetValue(), SUBTITLE.GetValue().c_str(), m_pSong->m_sSubTitle.c_str() );
|
||||||
|
sText += ssprintf( TAP_NOTE_TYPE_FORMAT.GetValue(), TAP_NOTE_TYPE.GetValue().c_str(), TapNoteTypeToString( m_selectedTap.type ).c_str() );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sText += ssprintf( NUM_STEPS_FORMAT.GetValue(), TAP_STEPS.GetValue().c_str(), m_NoteDataEdit.GetNumTapNotes() );
|
sText += ssprintf( NUM_STEPS_FORMAT.GetValue(), TAP_STEPS.GetValue().c_str(), m_NoteDataEdit.GetNumTapNotes() );
|
||||||
@@ -1299,43 +1305,48 @@ void ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB )
|
|||||||
m_NoteDataEdit.SetTapNote( iCol, iSongIndex, TAP_EMPTY );
|
m_NoteDataEdit.SetTapNote( iCol, iSongIndex, TAP_EMPTY );
|
||||||
// Don't CheckNumberOfNotesAndUndo. We don't want to revert any change that removes notes.
|
// Don't CheckNumberOfNotesAndUndo. We don't want to revert any change that removes notes.
|
||||||
}
|
}
|
||||||
else if( EditIsBeingPressed(EDIT_BUTTON_LAY_MINE_OR_ROLL) )
|
|
||||||
{
|
|
||||||
m_soundAddNote.Play();
|
|
||||||
SetDirty( true );
|
|
||||||
SaveUndo();
|
|
||||||
TapNote tn = TAP_ORIGINAL_MINE;
|
|
||||||
tn.pn = m_InputPlayerNumber;
|
|
||||||
m_NoteDataEdit.SetTapNote( iCol, iSongIndex, tn );
|
|
||||||
CheckNumberOfNotesAndUndo();
|
|
||||||
}
|
|
||||||
else if( EditIsBeingPressed(EDIT_BUTTON_LAY_TAP_ATTACK) )
|
else if( EditIsBeingPressed(EDIT_BUTTON_LAY_TAP_ATTACK) )
|
||||||
{
|
{
|
||||||
g_iLastInsertTapAttackTrack = iCol;
|
g_iLastInsertTapAttackTrack = iCol;
|
||||||
EditMiniMenu( &g_InsertTapAttack, SM_BackFromInsertTapAttack );
|
EditMiniMenu( &g_InsertTapAttack, SM_BackFromInsertTapAttack );
|
||||||
}
|
}
|
||||||
else if( EditIsBeingPressed(EDIT_BUTTON_LAY_LIFT) )
|
|
||||||
{
|
|
||||||
m_soundAddNote.Play();
|
|
||||||
SetDirty( true );
|
|
||||||
SaveUndo();
|
|
||||||
TapNote tn = TAP_ORIGINAL_LIFT;
|
|
||||||
tn.pn = m_InputPlayerNumber;
|
|
||||||
m_NoteDataEdit.SetTapNote( iCol, iSongIndex, tn );
|
|
||||||
CheckNumberOfNotesAndUndo();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_soundAddNote.Play();
|
m_soundAddNote.Play();
|
||||||
SetDirty( true );
|
SetDirty( true );
|
||||||
SaveUndo();
|
SaveUndo();
|
||||||
TapNote tn = TAP_ORIGINAL_TAP;
|
TapNote tn = m_selectedTap;
|
||||||
tn.pn = m_InputPlayerNumber;
|
tn.pn = m_InputPlayerNumber;
|
||||||
m_NoteDataEdit.SetTapNote(iCol, iSongIndex, tn );
|
m_NoteDataEdit.SetTapNote(iCol, iSongIndex, tn );
|
||||||
CheckNumberOfNotesAndUndo();
|
CheckNumberOfNotesAndUndo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EDIT_BUTTON_CYCLE_TAP_LEFT:
|
||||||
|
{
|
||||||
|
switch ( m_selectedTap.type )
|
||||||
|
{
|
||||||
|
case TapNote::tap: m_selectedTap = TAP_ORIGINAL_FAKE; break;
|
||||||
|
case TapNote::mine: m_selectedTap = TAP_ORIGINAL_TAP; break;
|
||||||
|
case TapNote::lift: m_selectedTap = TAP_ORIGINAL_MINE; break;
|
||||||
|
case TapNote::fake: m_selectedTap = TAP_ORIGINAL_LIFT; break;
|
||||||
|
DEFAULT_FAIL( m_selectedTap.type );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_BUTTON_CYCLE_TAP_RIGHT:
|
||||||
|
{
|
||||||
|
switch ( m_selectedTap.type )
|
||||||
|
{
|
||||||
|
case TapNote::tap: m_selectedTap = TAP_ORIGINAL_MINE; break;
|
||||||
|
case TapNote::mine: m_selectedTap = TAP_ORIGINAL_LIFT; break;
|
||||||
|
case TapNote::lift: m_selectedTap = TAP_ORIGINAL_FAKE; break;
|
||||||
|
case TapNote::fake: m_selectedTap = TAP_ORIGINAL_TAP; break;
|
||||||
|
DEFAULT_FAIL( m_selectedTap.type );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case EDIT_BUTTON_SCROLL_SPEED_UP:
|
case EDIT_BUTTON_SCROLL_SPEED_UP:
|
||||||
case EDIT_BUTTON_SCROLL_SPEED_DOWN:
|
case EDIT_BUTTON_SCROLL_SPEED_DOWN:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "Background.h"
|
#include "Background.h"
|
||||||
#include "Foreground.h"
|
#include "Foreground.h"
|
||||||
#include "NoteField.h"
|
#include "NoteField.h"
|
||||||
|
#include "NoteTypes.h"
|
||||||
#include "Song.h"
|
#include "Song.h"
|
||||||
#include "Steps.h"
|
#include "Steps.h"
|
||||||
#include "ThemeMetric.h"
|
#include "ThemeMetric.h"
|
||||||
@@ -237,6 +238,9 @@ protected:
|
|||||||
|
|
||||||
BitmapText m_textInputTips;
|
BitmapText m_textInputTips;
|
||||||
|
|
||||||
|
/** @brief The current TapNote that would be inserted. */
|
||||||
|
TapNote m_selectedTap;
|
||||||
|
|
||||||
void UpdateTextInfo();
|
void UpdateTextInfo();
|
||||||
BitmapText m_textInfo; // status information that changes
|
BitmapText m_textInfo; // status information that changes
|
||||||
bool m_bTextInfoNeedsUpdate;
|
bool m_bTextInfoNeedsUpdate;
|
||||||
|
|||||||
Reference in New Issue
Block a user