Chris Danford
9dc2a063a7
fix out of bounds iterator in reverse
2007-01-15 12:00:48 +00:00
Chris Danford
fb1fd171cb
add bInclusive option to _all_tracks_iterator
2007-01-15 11:30:40 +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
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
979f7843ed
Optimize. It's a bit tricky to think about but pleasantly symmetric.
2006-10-23 01:03:49 +00:00
Steve Checkoway
4805c6889d
Fix statement with no effect. = has a higher precedence than ?:.
2006-10-23 00:15:43 +00:00
Steve Checkoway
a8d0c464e2
Unused.
2006-10-23 00:14:29 +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
Glenn Maynard
cad383b2ab
redundant
2006-10-02 06:12:06 +00:00
Steve Checkoway
01fb4540f3
Simplify.
2006-10-01 14:51:50 +00:00
Steve Checkoway
8cffb9666f
Simplify.
2006-08-23 22:33:08 +00:00
Steve Checkoway
5cfab46c84
Simplify.
2006-08-23 22:05:35 +00:00
Steve Checkoway
a491752dba
The shift key is an important one.
2006-08-19 20:05:43 +00:00
Steve Checkoway
330d9ef714
Fix crash.
2006-08-19 19:55:05 +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
Glenn Maynard
e0a23cfbd4
vc7 fix
2006-08-16 18:43:13 +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
Josh Allen
0fd98658a5
Add iterator condition All. Fixes linker error.
2006-07-21 16:22:52 +00:00
Steve Checkoway
c299a7a4f7
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. Also, you can specify a condition on the notes to be returned.
...
Simplify.
2006-07-21 07:59:41 +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
1c36401033
ASSERT_M to catch invalid value
2006-06-14 10:14:49 +00:00
Chris Danford
ddaa912878
ASSERT_M to catch invalid value
2006-06-14 10:07:04 +00:00
Chris Danford
1ad58b4631
experimental: save NoteData to XML for recording played games
2005-11-22 21:18:45 +00:00
Glenn Maynard
abc2595e45
simplify
2005-10-07 02:57:54 +00:00
Glenn Maynard
fbac911c8d
fix ClearRangeForTrack splits hold notes when given a degenerate range
2005-07-30 07:08:50 +00:00
Glenn Maynard
733a465f62
more precise definition
2005-07-30 05:59:39 +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
f2a418d79d
implement HiddenPtr smart pointer type; use it for Steps. This avoids having
...
to write a whole copy constructor for a class just to hide a couple types from
the header.
2005-07-03 03:05:54 +00:00
Chris Danford
c36df02254
add rolls to eval and scoring
2005-05-09 06:15:59 +00:00
Glenn Maynard
73f5051118
add NoteData::GetNumRolls
2005-04-25 09:33:58 +00:00
Chris Danford
2a9bd36813
fix "can't lay holds longer than 1 snap value in record"
2005-04-07 19:30:40 +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
Chris Danford
38bd0116d1
ensure that memory is really freed
2005-03-08 21:18:00 +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
1962259078
revert; bugs should be fixed, not ignored
2005-02-07 19:27:49 +00:00
Charles Lohr
2d566a0c33
We shouldn't crash here, right? and... let's not crash if we still have hold tails.
2005-02-07 18:55:09 +00:00
Glenn Maynard
ce8c71ce8b
cleanup
2005-01-25 19:36:38 +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
982ec42ab8
simplify
2005-01-23 21:28:47 +00:00