Commit Graph

147 Commits

Author SHA1 Message Date
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
Jason Felds 187415bc70 Add some .result hooks.
Have to find the other place to grab them.
2011-07-09 12:54:13 -04:00
Jason Felds c139537ce6 Add metric access for MinScores.
This will most likely be needed for my goal.
2011-07-09 12:37:01 -04:00
Jason Felds 2726f6df82 NOW Mini and Tiny are swapped properly. 2011-07-05 16:50:06 -04:00
Jason Felds b115a875de Fix the other mMod corner case. 2011-07-03 13:57:22 -04:00
Jason Felds 2038606a30 New metric, MModHighCap. Can fix Tsuhsuixamush.
Set to 0 or less to remove the cap.
2011-07-03 13:43:30 -04:00
Jason Felds 1574de2c25 Deal with corner case.
The hardcoded 600 will soon become a metric.
2011-07-03 13:35:00 -04:00
Jason Felds b84fa62579 Tag team by freem and myself: mmods working 90%.
The remaining 10%? Dealing with Tsuhsuixamush.
2011-07-03 13:15:31 -04:00
Jason Felds b15322a87a Most issues fixed for MMods.
Present problem: trying to assign the scroll
speed in a "read only structure". Is mPlayerOptions.GetCurrent()
a set in disguise?
2011-07-03 10:26:00 -04:00
Colby Klein 07a2bd6da7 Port OpenITG's M-Mods. Example: m600 to set target BPM of 600, on a 200BPM song this means 3x. Works with custom speed mods. Note: the block in Player.cpp needs to be fixed for these to be usable, do this before releasing PR2. 2011-07-03 00:08:56 -07:00
Jason Felds ba5bef76b5 Make holds and rolls use the same timing.
Players may have to update their Preferences.ini file manually.
2011-06-29 20:26:05 -04:00
Jason Felds 2d6c94e70e Revert parts of RandomVanish code.
It was never the logic that was busted.
Just the noteskins.
2011-06-27 13:26:32 -04:00
Jason Felds 16d58dc0a4 Fix editor crash if you don't save a new chart. 2011-06-24 01:09:37 -04:00
Jason Felds a72241666d Ensure AutoPlay doesn't cause ANY combo increase.
AutoPlayCPU can, however.
2011-06-13 15:00:21 -04:00
Jason Felds c3c8753620 More prototype warning stuff.
I know these should be in the .h files,
but we can cover that later.
2011-06-12 19:20:43 -04:00