Commit Graph

66 Commits

Author SHA1 Message Date
Mike Hawkins dd347e27c5 Holds to rolls modifier 2008-05-14 23:18:58 +00:00
Chris Danford 5e87c2e81a karaoke prototype (disabled) 2008-03-12 23:17:39 +00:00
Chris Danford b7d9b04507 GetNumUsedTracks -> GetMaxNonEmptyTrack 2007-09-04 04:21:15 +00:00
Chris Danford d2f6f8e03f experimental time signature support. Background changes and beat bars are currently the only things that are aware of time signature. Note coloring isn't aware of time signature yet. 2007-04-30 05:12:48 +00:00
Chris Danford 8dad4f1ac1 show hopo-possible notes with addition coloring 2006-12-01 14:18:18 +00:00
Glenn Maynard de6ca466d2 more enum standardization 2006-10-07 04:39:48 +00:00
Glenn Maynard 2ce839e4eb Invalid 2006-10-07 04:25:28 +00:00
Steve Checkoway a839f8cfa6 Comments. 2006-08-14 07:58:03 +00:00
Steve Checkoway 025997d453 Removes all tap notes except for those with PLAYER_INVALID and those matching that player. 2006-07-09 20:11:46 +00:00
Steve Checkoway 0279fd908f CombineCompositeNoteData(). This will not let you place a note inside a hold note that already exists. Use this when loading from a string as well. 2006-06-26 10:57:10 +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 96e3f211b8 Split the given composite NoteData into it's constituent parts. If the given NoteData is not composite, just copy it. 2006-06-20 14:32:09 +00:00
Steve Checkoway fff087a76b Split out LoadFromSMNoteDataStringWithPlayer(). This fills out the NoteData without making any copies of sSMNoteData. Previously, this portion of the code copied the full string twice, once when splitting for measures and once when splitting for lines.
Only make a single copy of the string in LoadFromSMNoteDataString() when stripping out comments. Previously, the string was copied as many times as there were comments. Now, the whole loading can happen with a single copy of the data.
2006-06-20 13:34:28 +00:00
Chris Danford 7f821e8cfc CString -> RString 2006-01-22 01:00:06 +00:00
Glenn Maynard ff7bbfe524 remove ShiftRows 2005-12-18 07:11:51 +00:00
Glenn Maynard e76574e7cc split NoteDataUtil::ShiftRows into InsertRows and DeleteRows 2005-12-18 06:26:22 +00:00
Chris Danford cd9cf4c1e2 move some service menu actions from GameCommand into ScreenServiceAction 2005-11-29 23:15:11 +00:00
Glenn Maynard b2c7e5e829 add "jump to next note", "jump to previous note" 2005-07-22 00:55:36 +00:00
Glenn Maynard fa758e9a71 add NoteDataUtil::LoadTransformedLightsFromTwo 2005-05-04 08:18:37 +00:00
Chris Danford b81c304eb6 rename FixImposibleRows -> RemoveStretch and turn it into a mod 2005-05-01 04:35:29 +00:00
Glenn Maynard 8df4f7929a add NoteDataUtil::AnyTapsAndHoldsInTrackRange 2005-04-29 01:56:38 +00:00
Chris Danford 534842c2da calculate grade with possible values from radarValues, not from judgement counts from attempted steps 2005-04-26 04:16:45 +00:00
Glenn Maynard 5d0386a7bc add NoteDataUtil::ChangeRollsToHolds 2005-04-25 09:18:02 +00:00
Chris Danford 441e86ac24 add "Autogen To Fill Width" to editor 2005-03-25 09:36:08 +00:00
Glenn Maynard 10a4f13c51 move InsertHoldTails into NoteDataUtil 2005-02-12 08:16:02 +00:00
Glenn Maynard 49d1922912 implement NoteDataUtil::ShiftRight and NoteDataUtil::ShiftLeft without 4s 2005-01-23 04:59:10 +00:00
Glenn Maynard 9735755e00 Add MAX_NOTE_ROW, indicating the maximum row that we can represent.
We can actually go much higher; I set this to 1<<30 instead of 1<<31 so
we don't overflow when eg. adding one beat or one measure in some
algorithms.

The advantage of this over "999999" is it won't break if ROWS_PER_BEAT
is changed to a large value.

Also, since this value will typically be much larger than any actual row, it'll
quickly show up any algorithms that aren't iterating properly.

An advantage over older code using 999999 is that we don't have to
manually clamp the value to a reasonable range; FOREACH_NONEMPTY_ROW_IN_TRACK_RANGE,
etc. don't care.

An advantage of this over using -1 as a sentinel is that we don't have to
carefully check and fill in the value in every function using it.
2005-01-22 18:51:51 +00:00
Glenn Maynard 24f8de5cec more use of beat indexes instead of floating point
It actually looks like almost all of NoteDataUtil can be done naturally
in fixed-point: instead of passing around floating point, converting it to
fixed point for NoteData indexing, and adding floating-point beat fractions,
just pass around fixed point everywhere, and convert beat fractions to
fixed-point (which probably happens at compile-time)
If TimingData, etc. does the same thing, things will be simpler ...
2005-01-22 17:51:46 +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 b6091d6cd5 NoteData::EliminateAllButOneTap -> NoteDataUtil::RemoveAllButOneTap;
use accessors for NoteData::GetFirstRow, NoteData::GetLastRow
2004-10-25 03:36:42 +00:00
Chris Danford bb0da6a289 quantize rows when reading from BMSs so that we don't end up with 2MB cache files 2004-10-24 17:36:13 +00:00
Chris Danford eff1dc9695 play auto keysounds 2004-10-24 10:45:30 +00:00
Chris Danford 1b3c786213 cleanup: variable name and const 2004-10-24 10:20:24 +00:00
Chris Danford 3ac1dba044 simplify TapAttack storage:
store attack info in TapNote
  in the SMNoteData string, store the attack params inline (like with keysounds)
play keysounds when hit
  still doesn't play keysounds on a miss
  still doesn't play autoKeysounds
2004-10-23 23:41:49 +00:00
Chris Danford abe10501f7 change Twister to "max 3 holds at once"
add Floored, "max 2 holds at once"
2004-08-29 21:26:52 +00:00
Chris Danford 27ece3ecbf fix "transform mods that last for a whole song in a course get applied twice"
fix "impossible to get 100% on a course that uses AddMines" by calculating RadarValues after applying mods
Trail::GetRadarValues needs to do caching.  Performance is bad.
2004-07-23 04:45:48 +00:00
Glenn Maynard b7799ccd0a move autogen into NoteDataUtil 2004-07-17 05:10:11 +00:00
Chris Danford 96ca652c94 move RadarValues into a separate file
clean up usage of RadarValues
2004-07-11 07:21:33 +00:00
Glenn Maynard 2cab5c4689 license updates 2004-05-31 22:42:12 +00:00
Glenn Maynard 854da28681 cleanup
handle lights via autogen as originally suggested
2004-05-20 19:05:37 +00:00
Chris Danford 69f5527450 improve skippy
improve order of transforms when multiple are in effect
2004-03-01 08:59:22 +00:00
Matt Denham 45591679e6 added NoteDataUtil::ScaleRegion, made NoteDataUtil::Scale call that instead 2004-02-25 08:25:39 +00:00
Matt Denham 6905bbe781 Added BMRize mod because people have complained that Quick is too easy. Try this. :-) 2004-02-12 06:54:54 +00:00
Chris Danford b555be59df more rave balancing
add "noquads"
2004-01-12 03:47:55 +00:00
Chris Danford e2136499e1 add "nojumps" 2004-01-11 06:34:30 +00:00
Chris Danford ba9cef947e fix double+stomp 2004-01-02 21:02:06 +00:00
Chris Danford da466fc20c add NoHands option 2004-01-02 11:25:21 +00:00
Chris Danford 65df309d32 add collapse left transform 2003-12-31 07:49:30 +00:00
Glenn Maynard 321105c0d3 fix Can't use turns as battle attacks 2003-12-16 04:35:43 +00:00
Chris Danford 4e80f3057a working on battle 2003-11-20 06:50:05 +00:00