Commit Graph

161 Commits

Author SHA1 Message Date
Jason Felds 35c22dc21f Only process this loop if there is a notefield. 2013-04-28 17:52:06 -04:00
Jason Felds b82e7c18a2 Two for loops. 2013-04-28 17:50:52 -04:00
Jason Felds 9ec7272416 Restore the const nature of this variable.
Lambdas can be taken advantage of.
2013-04-27 16:06:17 -04:00
Jason Felds 9c7111918d Loop and whitespace. 2013-04-27 13:52:46 -04:00
Jason Felds 20d94d4b7e Cat is back in the bag. Revert commits.
A-mods need to be tested more.

...and this is what happens when you forget to
stash changes before a merge. Lesson learned.
2013-04-19 21:49:55 -04:00
Jason Felds 489a9312fc Forced a merge. Should be good. 2013-04-18 22:58:30 -04:00
Devin J. Pohly 4eb8d72325 Player: add column as a parameter to StepMessage 2013-02-04 22:25:54 -05:00
Jason Felds 1b8da256e1 Fix warp/mine stutter that could take place.
Fixes commit 535ef4d: thanks phantom.
2013-02-03 14:14:05 -05:00
Devin J. Pohly 106838cf64 fix warning about const float 2013-01-31 13:35:39 -05:00
Devin J. Pohly 1a150b96d5 Player: remove fake loop, simplify hopo logic 2013-01-25 18:18:13 -05:00
Jason Felds 7bbeb689db Another batch of gotos gone.
Using the fake infinite loop style to avoid the
(stupid) windows constant evaluation pedantic warning.
2013-01-24 23:07:16 -05:00
Devin J. Pohly ce507b9800 use empty TimingData in Steps to signify fallback on Song timing.
This required using the new Steps::GetTimingData function and the allowEmpty
parameter to TimingData::TidyUpData when appropriate, as well as clearing the
TimingData to remove step timing rather than coping the song timing over it.

Fixes some odd editor behavior when changing song timing, and is overall a
slightly less hacky way of doing things.
2013-01-23 14:51:18 -05:00
Devin J. Pohly bd0e2074ad replace ASSERT(0) with useful fail messages 2012-12-27 16:59:35 -05:00
Jason Felds 1fc16698ba War on -Werror, part 12: explicit bool usage.
It may save a few cycles, but it's best to be
explicit on boolean operations, especially with
ASSERT.
2012-12-27 11:38:53 -05:00
Jason Felds bddbed7e7e war on -Werror, part 11: const int -> float loss.
Had to work around the inline static const int rule
to do it, but at least there is no data loss now.
2012-12-27 11:13:41 -05:00
Jason Felds e86aeb66a8 war on -Werror, part 10: more informals. 2012-12-27 11:01:51 -05:00
Devin J. Pohly 7aac8c5ae3 war on -Werror, part 2: unused variables and dead code 2012-12-26 20:35:02 -05:00
AJ Kelly 3ca54f1000 [Player] Keysounds now respect the volume settings. Sourced from hanubeki-modified-sm-ssc rev. 16fc5b714582 [hanubeki] 2012-03-28 19:24:27 -05:00
Jason Felds 73cc1bdaae [sm5a2futures -> default] Not that much changed...
Mainly minor stuff. Time this gets brought in.

The other multi chain branches...
unsure of their fate. May need to be redone again
since not everyone is happy with its progress.
2012-03-18 22:05:07 -04:00
AJ Kelly 753cdae2fc [Player] Changed default Hold window to 0.250f like in 3.9; not sure when or why it got changed. 2012-03-04 21:42:43 -06:00
Jason Felds 08d3abbe44 New branch: [sm5a2futures]
Want to make sure we don't cause conflicts for future 1a builds.

This commit: change the sentinel for launching attacks immediately.

This way, songs with negative gaps can have attacks work here.

Thanks to Saturn for the assist.
2012-02-23 22:50:03 -05:00
Jason Felds baae57d9d5 [editorKeysounds] No KSes in this mode, thanks. 2012-02-11 15:16:34 -05:00
Jason Felds 1f68f7afe4 [editorKeysounds] minor comment. 2012-02-11 14:40:24 -05:00
Jason Felds d7d56f525e [editorKeysounds] Right, doesn't hit here either. 2012-02-11 01:21:22 -05:00
Jason Felds b2f4365fe5 [editorKeysounds] Right, never hits here. 2012-02-11 01:10:11 -05:00
Jason Felds 22033113a5 [editorKeysounds] More attempts, need help.
Anyone want a stab?

Main issue: tap + autoKeysound means skipped judgment.
2012-02-10 23:16:00 -05:00
Jason Felds 2f6240d372 [editorKeysounds] autoKeysounds is auto now. 2012-02-10 21:30:48 -05:00
Flameshadowxeroshin e19fe5a949 redo mine combo control code by hooking wolfman's SetMineJudgment thing (guaranteed to build) 2012-01-23 22:03:11 -06:00
Flameshadowxeroshin 80a0621cbb once and for all 2012-01-23 21:57:56 -06:00
Flameshadowxeroshin b26759a1b8 make good time 2012-01-23 21:55:08 -06:00
Flameshadowxeroshin fc4cdfbad9 revert? 2012-01-24 03:39:30 +00:00
Flameshadowxeroshin 516d010378 god awful ugly commit 2012-01-24 03:26:11 +00:00
Jason Felds 535ef4db29 Two new options for JudgmentMessageCommand.
You can now use AvoidMine and HitMine.

Obviously, not at the same time.

Thanks to Saturn2888 and shakesoda for the fix.
2012-01-23 21:53:18 -05:00
Jason Felds 058f03e495 Allow versus oni graceful failure. 2011-12-12 21:27:32 -05:00
Thai Pangsakulyanont 248504f275 escape # in first keysound entry, fixed ADPCM reader and make PMS load more correctly.
- [NoteField] fix build warnings, and change the maximum number of displayed notes
  after the receptor to 64.
- [Player] fix build warnings.
- [NotesLoaderSSC, NotesWriterSSC] The MSD file reader seems to treat # that comes
  directly after : as new tag, and as many PMS and BMS files has keysounds which filename
  starts with #, so it looks like this: #KEYSOUNDS:#bgm.wav,01.wav,02.wav,..
  The MSD parser will see it as 2 different tags. So I added a backslash in front of the
  # sign if it's at the start when saving and remove it when loading.
- [RageSoundReader_WAV] ADPCM now works very well and doesn't return error when
  end of file is reached anymore.
- [Steps] Use BMS loader when loading the note data.
2011-11-11 18:40:34 +07:00
Thai Pangsakulyanont 61a69fe457 prepwork: also generate a data structure for note statistics that can
determine the number of notes to display from any beat to any beat in
O(log n) [n = number of non-empty rows].

it might be used to determine the first displayed beat or last displayed
beat based on number of notes on screen (instead of fixed beats),
if this can be implemented properly, then notes will no longer disappear
or appear during a long slow scrolls/speeds [as long as the number of
notes to display is in our limit].
2011-09-16 22:27:56 +07:00
Mark Cannon 8099e25dcc stage 3 of TimingData changes: changed external interface, enforce encapsulation more strictly 2011-09-15 03:28:58 +00:00
Thai Pangsakulyanont d285c80a72 Some optimizations with the scroll segments.
Scroll segments seem to cause the lag when there's a lot of segment
in the steps, say, 165. On my Mac, it drops the frame-rate down by about
30 FPS in the end.

This is because the way the the game tries to determine the exact position
of the note, it has to go through all the scroll segments from the
beginning until it finds the currently active scroll segment and keep
track of the beat to display instead.

And each frame, the game needs to determine the position for each note,
and also when figuring out the first beat and last beat to display. This
makes the game slow even with just 165 scroll segments.

The approach is that at every game update, we create an optimized data
structure that can calculate the displayed beat from real song beat
in O(log n) time. So in this approach we iterate through EVERY scroll
segments each frame instead of iterating through the scroll segments
for each note for each frame. This eliminates the lag on this side.

The data structure is recomputed each update because I assume that the
timing segments can change at any time, but not during draws.

A similar problem is: when using Cmods, GetElapsedTimeFromBeat()
is also called very often (say, for each note and also in FindFirst/Last
DisplayedBeat), we may as well have to make these queries faster for songs
that has hundreds of BPM changes or stops or delays to prevent the game
from lagging.
2011-09-14 23:48:24 +07:00
AJ Kelly 0c40652436 [Player] Make keysounds respect volume preference. Fixes issue 344. 2011-08-20 03:03:10 -05:00
Thai Pangsakulyanont 4dfed45103 Mute the keysound immediately when letting go of hold note.
Don't know if that last formula change is intentional or not, so restoring this
old formula. Back this out if it's actually intentional.
2011-08-08 00:40:14 +07:00
Jason Felds 2961d4532b No need for hopo checking. 2011-07-30 15:43:22 -04:00
Jason Felds dbdab4759e [Xcode4] May as well fix switch warnings.
Still need some assistance for the linker error.
2011-07-20 11:11:04 -04:00
Jason Felds 3e260fca48 [default -> timing] Bring up to date for test. 2011-07-17 10:54:42 -04:00
Jason Felds b545c7d6d3 Revert Quantize*.
Ended up being finicky and only working with some files.

Perhaps some ups needed downs or vice~versa.
2011-07-17 01:22:59 -04:00
Jason Felds 6f5ab98dec [timing] More respect of pointers.
Again going to trust virtual functions to do the right thing.
2011-07-14 23:15:48 -04:00
Jason Felds 228c1b793c ...right. We need telekenesis now. 2011-07-13 23:40:52 -04:00
Jason Felds f77107ea78 Whoops: wrong direction. Thanks vyhd! 2011-07-13 23:39:39 -04:00
Jason Felds c875b3cf5f Use better code. 2011-07-13 23:11:47 -04:00
Jason Felds 2eeed0cea0 Un-needed cast. 2011-07-13 17:00:09 -04:00
Jason Felds 2d8f130771 Revert these. It was only needed in score.
I apologize for the recompilation of about 180 files.
2011-07-09 13:21:08 -04:00