Steve Checkoway
15611d510b
Simplify. Remove the condition from the iterator. Almost nothing uses it (although other things could), it seems more trouble than it's worth.
2007-09-17 03:27:33 +00:00
Chris Danford
215fd9f2ad
fix TapNotes being given TNS_Miss after they were already judged (also caused non-checkpoint HoldNotes to LetGo)
...
fix HoldNotes never receive judgment because out of range ones were not being passed to UpdateHoldNotes.
2007-09-17 00:03:43 +00:00
Chris Danford
c330dd6ae0
add to all_tracks_iterator: copy constructor, operator=, GetIter
2007-09-13 05:18:05 +00:00
Chris Danford
5a73f14767
add IsEmptyTrack
2007-09-04 04:21:35 +00:00
Chris Danford
fb1fd171cb
add bInclusive option to _all_tracks_iterator
2007-01-15 11:30:40 +00:00
Chris Danford
668158658e
move Jump window and Hopo window values to be preferences
2006-12-11 12:59:32 +00:00
Chris Danford
8dad4f1ac1
show hopo-possible notes with addition coloring
2006-12-01 14:18:18 +00:00
Chris Danford
6b07fcaed5
add hammer-ons and pull-offs ("hopo")
2006-11-30 12:29:01 +00:00
Steve Checkoway
9d19fd5008
Simplify.
2006-10-23 03:35:34 +00:00
Steve Checkoway
802b2349a1
Simplify reverse iterators. There isn't a "past the beginning" iterator so this is hard to make a true bidirectional iterator. Instead restrict this to a single direction based on the m_bReverse parameter. Use the "past the end" iterator in place of the "past the beginning" iterator when in reverse.
2006-10-23 03:33:24 +00:00
Steve Checkoway
cd9ec6d6c0
Pointers to a member function Foo::Bar() have the form &Foo::Bar. The & is mandatory, unlike pointers to functions.
2006-10-23 00:14:12 +00:00
Chris Danford
21fafaa046
add all_tracks_reverse_iterator
2006-10-22 23:08:13 +00:00
Steve Checkoway
c9850c2eb3
Cleanup.
2006-08-23 23:34:53 +00:00
Steve Checkoway
468b44805b
Comment.
2006-08-23 22:44:32 +00:00
Steve Checkoway
e319f9205e
Header guard.
2006-08-23 22:39:43 +00:00
Steve Checkoway
8cffb9666f
Simplify.
2006-08-23 22:33:08 +00:00
Steve Checkoway
63b3bc4cb7
Header cleanup.
2006-08-17 18:14:24 +00:00
Steve Checkoway
5ccbffebfc
Simplify IsAtEnd logic. (I forgot to mention that these iterators have a one time O(log n) cost to construct.)
2006-08-17 18:05:42 +00:00
Steve Checkoway
f57bc1ef78
Use NoteData::iterator instead of a track-row pair. With n nonempty rows in the NoteData and m nonempty rows in the range, iterating over the whole range took O(m log n). Now, it takes O(m). (Saves the map look ups which are amortized log-time.)
2006-08-17 17:58:45 +00:00
Steve Checkoway
44615a7224
Fix comments.
2006-08-16 12:08:27 +00:00
Steve Checkoway
993fe3832e
Add const versions.
2006-08-16 12:06:35 +00:00
Steve Checkoway
6bfccc7f4c
Remove IteratorCondition, use NULL to signify what was previously IteratorCondition::All.
2006-08-16 11:57:24 +00:00
Steve Checkoway
dc9361a4ef
Move class template's member function definitions out of the header, explicitly instantiate all_tracks_iterator and all_tracks_const_iterator.
...
Apart from cleaning up the header (the main goal), this should improve compile time by instantiating in a single place so the linker doesn't have to combine multiple definitions.
2006-08-16 11:37:38 +00:00
Steve Checkoway
b9de4e9965
Specialize std::swap() for NoteData in terms of NoteData::swap() so that swap( a, b ) takes constant time.
2006-07-24 05:58:11 +00:00
Steve Checkoway
0cb3814965
Implement swap(). Instead of doing
...
foo( NoteData &inout )
{
NoteData temp;
/* some operation on temp involving inout. */
inout = temp;
}
which requires copying all of temp, replace the assignment with swap which takes constant time instead of linear (or likely n log n since they're in maps) in the number of notes.
2006-07-24 04:49:03 +00:00
Josh Allen
b4040ae8c9
Fix warnings
2006-07-21 16:01:43 +00:00
Steve Checkoway
077f826afd
No need for friend. This only uses the public interface.
2006-07-21 08:03:13 +00:00
Steve Checkoway
28e8e9148e
GetTapNoteRangeAllTracks() returns an all_tracks_iterator which can be used to iterate over all of the tracks in all of the rows in the range.
2006-07-21 07:58:30 +00:00
Steve Checkoway
8129d943ba
It's hard to maintain this information when using begin() and end() so rather than wrapping the iterators, just check each time IsComposite() is called since it doesn't happen _that_ often. Just don't call IsComposite() often.
2006-06-26 09:33:11 +00:00
Steve Checkoway
91f1329653
Composite NoteData for when one NoteData represents multiple NoteDatas.
2006-06-20 13:20:45 +00:00
Chris Danford
1ad58b4631
experimental: save NoteData to XML for recording played games
2005-11-22 21:18:45 +00:00
Glenn Maynard
b8838ba5c0
comment to make IsHoldNoteAtRow's behavior clear, add IsHoldHeadOrBodyAtRow
2005-07-22 00:34:54 +00:00
Glenn Maynard
4ec405f13b
IsHoldNoteAtBeat -> IsHoldNoteAtRow
2005-07-22 00:14:24 +00:00
Glenn Maynard
5769d00abf
implement GetPrevTapNoteRowForAllTracks
2005-07-21 22:30:00 +00:00
Glenn Maynard
73f5051118
add NoteData::GetNumRolls
2005-04-25 09:33:58 +00:00
Chris Danford
cd8b35e801
fix "can't paste from clipboard with only one row in clipboard"
...
fix "can't Undo to a blank NoteField"
clamp paste area so that pasting past the maximum beat is impossible
2005-03-29 20:25:14 +00:00
Glenn Maynard
34b8c2a01a
fix hands counting
2005-03-23 10:37:36 +00:00
Chris Danford
5befb60456
method name cleanup, add comments
2005-03-20 20:15:41 +00:00
Glenn Maynard
f752e1c3b0
hide NoteData::InsertHoldTails away in NoteDataUtils
2005-02-07 22:03:32 +00:00
Glenn Maynard
10bc0bf336
remove NoteData::RemoveHoldTails
...
cleanup
2005-02-07 21:55:43 +00:00
Glenn Maynard
bb7482e722
evil big commit (sorry):
...
Remove m_HoldNote array entirely. Remove 2sAnd3s. Store hold note
durations in the hold head. hold_tail only still exists when InsertHoldTails
is used, to make SM parsing a little easier (may go away). Add helpers
for iterating over ranges while including or excluding adjacent and overlapping
hold notes. Range operations are now [start,end) instead of [start,end].
(probably more details coming to sm-dev soon)
2005-01-25 05:02:35 +00:00
Glenn Maynard
206363742d
remove 4s
2005-01-23 21:37:40 +00:00
Glenn Maynard
5da9c848d6
make NoteDataUtil::LoadTransformedLights work
2005-01-23 17:58:32 +00:00
Glenn Maynard
7cf3351851
implement NoteDataUtil::ClearLeft and NoteDataUtil::ClearRight without 4s
2005-01-23 05:31:55 +00:00
Glenn Maynard
14bc4ae9f6
reduce use of 4s
2005-01-22 20:22:12 +00:00
Glenn Maynard
a769bc7c41
cleanup
2005-01-22 19:25:05 +00:00
Glenn Maynard
cd9b66220a
use MAX_NOTE_ROW, fixes
2005-01-22 19:18:42 +00:00
Glenn Maynard
77d58c0d63
"Beat rows" are really just a fixed-point representation of beats. Prefer
...
using them in general over beats: it's more precise (we can tell exactly
how it'll round, and we can compare them without ugly error-margin hacks),
and it's what we need to use them with NoteData.
2005-01-22 17:34:10 +00:00
Glenn Maynard
754bce5c98
optimize rendering iteration
2005-01-22 03:11:29 +00:00
Glenn Maynard
d581ae240e
fix row 0 being skipped
2004-11-03 08:22:20 +00:00