Merge pull request #328 from hanubeki/notecolor
Add {PartName}NoteColorType and {PartName}NoteColorCount NoteSkin metric.
This commit is contained in:
@@ -25,38 +25,56 @@ TapNoteAdditionTextureCoordOffsetX=0
|
|||||||
TapNoteAdditionTextureCoordOffsetY=0
|
TapNoteAdditionTextureCoordOffsetY=0
|
||||||
TapNoteNoteColorTextureCoordSpacingX=0
|
TapNoteNoteColorTextureCoordSpacingX=0
|
||||||
TapNoteNoteColorTextureCoordSpacingY=0
|
TapNoteNoteColorTextureCoordSpacingY=0
|
||||||
|
TapNoteNoteColorCount=8
|
||||||
|
TapNoteNoteColorType=Denominator
|
||||||
TapMineAdditionTextureCoordOffsetX=0
|
TapMineAdditionTextureCoordOffsetX=0
|
||||||
TapMineAdditionTextureCoordOffsetY=0
|
TapMineAdditionTextureCoordOffsetY=0
|
||||||
TapMineNoteColorTextureCoordSpacingX=0
|
TapMineNoteColorTextureCoordSpacingX=0
|
||||||
TapMineNoteColorTextureCoordSpacingY=0
|
TapMineNoteColorTextureCoordSpacingY=0
|
||||||
|
TapMineNoteColorCount=8
|
||||||
|
TapMineNoteColorType=Denominator
|
||||||
TapLiftAdditionTextureCoordOffsetX=0
|
TapLiftAdditionTextureCoordOffsetX=0
|
||||||
TapLiftAdditionTextureCoordOffsetY=0
|
TapLiftAdditionTextureCoordOffsetY=0
|
||||||
TapLiftNoteColorTextureCoordSpacingX=0
|
TapLiftNoteColorTextureCoordSpacingX=0
|
||||||
TapLiftNoteColorTextureCoordSpacingY=0
|
TapLiftNoteColorTextureCoordSpacingY=0
|
||||||
|
TapLiftNoteColorCount=8
|
||||||
|
TapLiftNoteColorType=Denominator
|
||||||
TapFakeAdditionTextureCoordOffsetX=0
|
TapFakeAdditionTextureCoordOffsetX=0
|
||||||
TapFakeAdditionTextureCoordOffsetY=0
|
TapFakeAdditionTextureCoordOffsetY=0
|
||||||
TapFakeNoteColorTextureCoordSpacingX=0
|
TapFakeNoteColorTextureCoordSpacingX=0
|
||||||
TapFakeNoteColorTextureCoordSpacingY=0
|
TapFakeNoteColorTextureCoordSpacingY=0
|
||||||
|
TapFakeNoteColorCount=8
|
||||||
|
TapFakeNoteColorType=Denominator
|
||||||
HoldHeadAdditionTextureCoordOffsetX=0
|
HoldHeadAdditionTextureCoordOffsetX=0
|
||||||
HoldHeadAdditionTextureCoordOffsetY=0
|
HoldHeadAdditionTextureCoordOffsetY=0
|
||||||
HoldHeadNoteColorTextureCoordSpacingX=0
|
HoldHeadNoteColorTextureCoordSpacingX=0
|
||||||
HoldHeadNoteColorTextureCoordSpacingY=0
|
HoldHeadNoteColorTextureCoordSpacingY=0
|
||||||
|
HoldHeadNoteColorCount=8
|
||||||
|
HoldHeadNoteColorType=Denominator
|
||||||
HoldTopCapAdditionTextureCoordOffsetX=0
|
HoldTopCapAdditionTextureCoordOffsetX=0
|
||||||
HoldTopCapAdditionTextureCoordOffsetY=0
|
HoldTopCapAdditionTextureCoordOffsetY=0
|
||||||
HoldTopCapNoteColorTextureCoordSpacingX=0
|
HoldTopCapNoteColorTextureCoordSpacingX=0
|
||||||
HoldTopCapNoteColorTextureCoordSpacingY=0
|
HoldTopCapNoteColorTextureCoordSpacingY=0
|
||||||
|
HoldTopCapNoteColorCount=8
|
||||||
|
HoldTopCapNoteColorType=Denominator
|
||||||
HoldBodyAdditionTextureCoordOffsetX=0
|
HoldBodyAdditionTextureCoordOffsetX=0
|
||||||
HoldBodyAdditionTextureCoordOffsetY=0
|
HoldBodyAdditionTextureCoordOffsetY=0
|
||||||
HoldBodyNoteColorTextureCoordSpacingX=0
|
HoldBodyNoteColorTextureCoordSpacingX=0
|
||||||
HoldBodyNoteColorTextureCoordSpacingY=0
|
HoldBodyNoteColorTextureCoordSpacingY=0
|
||||||
|
HoldBodyNoteColorCount=8
|
||||||
|
HoldBodyNoteColorType=Denominator
|
||||||
HoldBottomCapAdditionTextureCoordOffsetX=0
|
HoldBottomCapAdditionTextureCoordOffsetX=0
|
||||||
HoldBottomCapAdditionTextureCoordOffsetY=0
|
HoldBottomCapAdditionTextureCoordOffsetY=0
|
||||||
HoldBottomCapNoteColorTextureCoordSpacingX=0
|
HoldBottomCapNoteColorTextureCoordSpacingX=0
|
||||||
HoldBottomCapNoteColorTextureCoordSpacingY=0
|
HoldBottomCapNoteColorTextureCoordSpacingY=0
|
||||||
|
HoldBottomCapNoteColorCount=8
|
||||||
|
HoldBottomCapNoteColorType=Denominator
|
||||||
HoldTailAdditionTextureCoordOffsetX=0
|
HoldTailAdditionTextureCoordOffsetX=0
|
||||||
HoldTailAdditionTextureCoordOffsetY=0
|
HoldTailAdditionTextureCoordOffsetY=0
|
||||||
HoldTailNoteColorTextureCoordSpacingX=0
|
HoldTailNoteColorTextureCoordSpacingX=0
|
||||||
HoldTailNoteColorTextureCoordSpacingY=0
|
HoldTailNoteColorTextureCoordSpacingY=0
|
||||||
|
HoldTailNoteColorCount=8
|
||||||
|
HoldTailNoteColorType=Denominator
|
||||||
|
|
||||||
|
|
||||||
StartDrawingHoldBodyOffsetFromHead=0
|
StartDrawingHoldBodyOffsetFromHead=0
|
||||||
|
|||||||
+29
-3
@@ -32,6 +32,14 @@ static const char *NotePartNames[] = {
|
|||||||
XToString( NotePart );
|
XToString( NotePart );
|
||||||
LuaXType( NotePart );
|
LuaXType( NotePart );
|
||||||
|
|
||||||
|
static const char *NoteColorTypeNames[] = {
|
||||||
|
"Denominator",
|
||||||
|
"Progress",
|
||||||
|
};
|
||||||
|
XToString( NoteColorType );
|
||||||
|
StringToX( NoteColorType );
|
||||||
|
LuaXType( NoteColorType );
|
||||||
|
|
||||||
static bool IsVectorZero( const RageVector2 &v )
|
static bool IsVectorZero( const RageVector2 &v )
|
||||||
{
|
{
|
||||||
return v.x == 0 && v.y == 0;
|
return v.x == 0 && v.y == 0;
|
||||||
@@ -53,6 +61,9 @@ struct NoteMetricCache_t
|
|||||||
RageVector2 m_fAdditionTextureCoordOffset[NUM_NotePart];
|
RageVector2 m_fAdditionTextureCoordOffset[NUM_NotePart];
|
||||||
RageVector2 m_fNoteColorTextureCoordSpacing[NUM_NotePart];
|
RageVector2 m_fNoteColorTextureCoordSpacing[NUM_NotePart];
|
||||||
|
|
||||||
|
int m_iNoteColorCount[NUM_NotePart];
|
||||||
|
NoteColorType m_NoteColorType[NUM_NotePart];
|
||||||
|
|
||||||
//For animation based on beats or seconds -DaisuMaster
|
//For animation based on beats or seconds -DaisuMaster
|
||||||
bool m_bAnimationBasedOnBeats;
|
bool m_bAnimationBasedOnBeats;
|
||||||
bool m_bHoldHeadIsAboveWavyParts;
|
bool m_bHoldHeadIsAboveWavyParts;
|
||||||
@@ -82,6 +93,10 @@ void NoteMetricCache_t::Load( const RString &sButton )
|
|||||||
m_fAdditionTextureCoordOffset[p].y = NOTESKIN->GetMetricF(sButton,s+"AdditionTextureCoordOffsetY");
|
m_fAdditionTextureCoordOffset[p].y = NOTESKIN->GetMetricF(sButton,s+"AdditionTextureCoordOffsetY");
|
||||||
m_fNoteColorTextureCoordSpacing[p].x = NOTESKIN->GetMetricF(sButton,s+"NoteColorTextureCoordSpacingX");
|
m_fNoteColorTextureCoordSpacing[p].x = NOTESKIN->GetMetricF(sButton,s+"NoteColorTextureCoordSpacingX");
|
||||||
m_fNoteColorTextureCoordSpacing[p].y = NOTESKIN->GetMetricF(sButton,s+"NoteColorTextureCoordSpacingY");
|
m_fNoteColorTextureCoordSpacing[p].y = NOTESKIN->GetMetricF(sButton,s+"NoteColorTextureCoordSpacingY");
|
||||||
|
m_iNoteColorCount[p] = NOTESKIN->GetMetricI(sButton,s+"NoteColorCount");
|
||||||
|
|
||||||
|
RString ct = NOTESKIN->GetMetric(sButton,s+"NoteColorType");
|
||||||
|
m_NoteColorType[p] = StringToNoteColorType(ct);
|
||||||
}
|
}
|
||||||
//I was here -DaisuMaster
|
//I was here -DaisuMaster
|
||||||
m_bAnimationBasedOnBeats = NOTESKIN->GetMetricB(sButton,"AnimationIsBeatBased");
|
m_bAnimationBasedOnBeats = NOTESKIN->GetMetricB(sButton,"AnimationIsBeatBased");
|
||||||
@@ -728,9 +743,20 @@ void NoteDisplay::DrawActor( const TapNote& tn, Actor* pActor, NotePart part, in
|
|||||||
if( bNeedsTranslate )
|
if( bNeedsTranslate )
|
||||||
{
|
{
|
||||||
DISPLAY->TexturePushMatrix();
|
DISPLAY->TexturePushMatrix();
|
||||||
NoteType nt = BeatToNoteType( fBeat );
|
float color = 0.0f;
|
||||||
ENUM_CLAMP( nt, (NoteType)0, MAX_DISPLAY_NOTE_TYPE );
|
switch( cache->m_NoteColorType[part] )
|
||||||
DISPLAY->TextureTranslate( (bIsAddition ? cache->m_fAdditionTextureCoordOffset[part] : RageVector2(0,0)) + cache->m_fNoteColorTextureCoordSpacing[part]*(float)nt );
|
{
|
||||||
|
case NoteColorType_Denominator:
|
||||||
|
color = float( BeatToNoteType( fBeat ) );
|
||||||
|
color = clamp( color, 0, (cache->m_iNoteColorCount[part]-1) );
|
||||||
|
break;
|
||||||
|
case NoteColorType_Progress:
|
||||||
|
color = fmodf( ceilf( fBeat * cache->m_iNoteColorCount[part] ), (float)cache->m_iNoteColorCount[part] );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
FAIL_M(ssprintf("Invalid NoteColorType: %i", cache->m_NoteColorType[part]));
|
||||||
|
}
|
||||||
|
DISPLAY->TextureTranslate( (bIsAddition ? cache->m_fAdditionTextureCoordOffset[part] : RageVector2(0,0)) + cache->m_fNoteColorTextureCoordSpacing[part]*color );
|
||||||
}
|
}
|
||||||
|
|
||||||
pActor->Draw();
|
pActor->Draw();
|
||||||
|
|||||||
@@ -24,6 +24,17 @@ enum NotePart
|
|||||||
NotePart_Invalid
|
NotePart_Invalid
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @brief the color type of a Note. */
|
||||||
|
enum NoteColorType
|
||||||
|
{
|
||||||
|
NoteColorType_Denominator, /**< Color by note type. */
|
||||||
|
NoteColorType_Progress, /**< Color by progress. */
|
||||||
|
NUM_NoteColorType,
|
||||||
|
NoteColorType_Invalid
|
||||||
|
};
|
||||||
|
const RString& NoteColorTypeToString( NoteColorType nct );
|
||||||
|
NoteColorType StringToNoteColorType( const RString& s );
|
||||||
|
|
||||||
struct NoteResource;
|
struct NoteResource;
|
||||||
|
|
||||||
struct NoteColorActor
|
struct NoteColorActor
|
||||||
|
|||||||
Reference in New Issue
Block a user