fix bug in e96b170, note display should be correct again.

This commit is contained in:
Colby Klein
2019-03-15 17:11:44 -07:00
parent 95e88e1c5e
commit 567f8363e8
+10 -8
View File
@@ -472,8 +472,8 @@ bool NoteDisplay::DrawHoldsInRange(const NoteFieldRenderArgs& field_args,
const vector<NoteData::TrackMap::const_iterator>& tap_set) const vector<NoteData::TrackMap::const_iterator>& tap_set)
{ {
bool any_upcoming = false; bool any_upcoming = false;
for(vector<NoteData::TrackMap::const_iterator>::const_iterator tapit= for(vector<NoteData::TrackMap::const_iterator>::const_reverse_iterator tapit=
tap_set.begin(); tapit != tap_set.end(); ++tapit) tap_set.rbegin(); tapit != tap_set.rend(); ++tapit)
{ {
const TapNote& tn= (*tapit)->second; const TapNote& tn= (*tapit)->second;
const HoldNoteResult& result= tn.HoldResult; const HoldNoteResult& result= tn.HoldResult;
@@ -539,8 +539,8 @@ bool NoteDisplay::DrawTapsInRange(const NoteFieldRenderArgs& field_args,
{ {
bool any_upcoming= false; bool any_upcoming= false;
// draw notes from furthest to closest // draw notes from furthest to closest
for(vector<NoteData::TrackMap::const_iterator>::const_iterator tapit= for(vector<NoteData::TrackMap::const_iterator>::const_reverse_iterator tapit=
tap_set.begin(); tapit != tap_set.end(); ++tapit) tap_set.rbegin(); tapit != tap_set.rend(); ++tapit)
{ {
int tap_row= (*tapit)->first; int tap_row= (*tapit)->first;
const TapNote& tn= (*tapit)->second; const TapNote& tn= (*tapit)->second;
@@ -614,6 +614,7 @@ bool NoteDisplay::DrawTapsInRange(const NoteFieldRenderArgs& field_args,
any_upcoming |= NoteRowToBeat(tap_row) > any_upcoming |= NoteRowToBeat(tap_row) >
m_pPlayerState->GetDisplayedPosition().m_fSongBeat; m_pPlayerState->GetDisplayedPosition().m_fSongBeat;
// TODO: change to Z Bias, remove clear
if(!PREFSMAN->m_FastNoteRendering) if(!PREFSMAN->m_FastNoteRendering)
{ {
DISPLAY->ClearZBuffer(); DISPLAY->ClearZBuffer();
@@ -1534,9 +1535,9 @@ void NoteColumnRenderer::DrawPrimitives()
NoteData::TrackMap::const_iterator begin, end; NoteData::TrackMap::const_iterator begin, end;
m_field_render_args->note_data->GetTapNoteRangeInclusive(m_column, m_field_render_args->note_data->GetTapNoteRangeInclusive(m_column,
m_field_render_args->first_row, m_field_render_args->last_row+1, begin, end); m_field_render_args->first_row, m_field_render_args->last_row+1, begin, end);
for(; begin != end; end--) for(; begin != end; ++begin)
{ {
const TapNote& tn= end->second; const TapNote& tn= begin->second;
switch(tn.type) switch(tn.type)
{ {
case TapNoteType_Empty: case TapNoteType_Empty:
@@ -1550,13 +1551,13 @@ void NoteColumnRenderer::DrawPrimitives()
case TapNoteType_Fake: case TapNoteType_Fake:
if(!tn.result.bHidden) if(!tn.result.bHidden)
{ {
taps[tn.pn].push_back(end); taps[tn.pn].push_back(begin);
} }
break; break;
case TapNoteType_HoldHead: case TapNoteType_HoldHead:
if(tn.HoldResult.hns != HNS_Held) if(tn.HoldResult.hns != HNS_Held)
{ {
holds[tn.pn].push_back(end); holds[tn.pn].push_back(begin);
} }
break; break;
default: default:
@@ -1573,6 +1574,7 @@ void NoteColumnRenderer::DrawPrimitives()
{ \ { \
DTS_INNER(pn, tap_set, draw_func, m_displays[pn]); \ DTS_INNER(pn, tap_set, draw_func, m_displays[pn]); \
} }
DRAW_TAP_SET(holds, DrawHoldsInRange); DRAW_TAP_SET(holds, DrawHoldsInRange);
DTS_INNER(PLAYER_INVALID, holds, DrawHoldsInRange, m_displays[PLAYER_INVALID]); DTS_INNER(PLAYER_INVALID, holds, DrawHoldsInRange, m_displays[PLAYER_INVALID]);
DRAW_TAP_SET(taps, DrawTapsInRange); DRAW_TAP_SET(taps, DrawTapsInRange);