Commit Graph
100 Commits
Author SHA1 Message Date
Steve Checkoway a54b9e5eda Use enum_add. 2006-07-28 20:11:27 +00:00
Steve Checkoway 1c95618c6b Swap aqua and green. 2006-07-28 20:02:57 +00:00
Steve Checkoway 27eaf18dbd Remove debugging. 2006-07-28 19:58:13 +00:00
Steve Checkoway 9f58df94ae Reverse condition. If we don't tell it what row to use, it needs to compute the offset using the time stamp. 2006-07-28 19:40:14 +00:00
Steve Checkoway 65f7c321ea With pad stick seconds, use the time to calculate the row. 2006-07-28 19:19:24 +00:00
Steve Checkoway b3056eee1c Fix mines not being triggered when being held down (for the most part). It's still possible for mines to not be triggered if the input released after the mine has passed but before the next Update() frame. This is much tricker to deal with since we can't ask if the button was held down at some time in the past It is also much harder to detect than having held down the button for an entire measure and watched mines just not be hit.
This should also fix autoplay misses by telling Step() exactly which row was pressed.

There are also comments in there about possible bugs in the grading/key sounds but I didn't want to change those without getting input from other devs since it does change the way we grade "jack hammers."
2006-07-28 09:05:58 +00:00
Steve Checkoway b868d557f7 Merge HandleStep() with Step(). This has one functional change, when using auto play and the AI avoids a mine or misses a note, the message to send on a step isn't sent which makes more sense because a step is being judged as not having happened. 2006-07-28 07:12:27 +00:00
Steve Checkoway 2d68d7b13e Comment. 2006-07-28 04:38:12 +00:00
Steve Checkoway e081585830 Add comment. 2006-07-28 04:37:26 +00:00
Steve Checkoway f57e1ca17c Add files. 2006-07-28 03:37:18 +00:00
Steve Checkoway 884af552ee Allow combined player steps to have per-player radar values. This doesn't work for trails where it just uses the PLAYER_1 values, same with writing to the catalog file. 2006-07-28 03:34:14 +00:00
Steve Checkoway 73962daa0a A build script that I've found to be useful for building the linux snapshot as well as including with the source snapshots which makes it easy to build with static ffmpeg libs (which it will download, patch, configure, and build for you). 2006-07-28 00:13:25 +00:00
Steve Checkoway 74f65e3cac Add missing screen. 2006-07-26 01:52:49 +00:00
Steve Checkoway a693421b06 Unused. 2006-07-26 01:46:52 +00:00
Steve Checkoway fd424585f2 Fix assert with monkey keyboard. 2006-07-26 00:31:48 +00:00
Steve Checkoway 7d2ff868e1 Cleanup. (This was written by Chris but InputHandler_MonkeyKeyboard.h was written by Glenn?) 2006-07-26 00:29:26 +00:00
Steve Checkoway bb5836ef0a Fix battery. 2006-07-25 23:45:42 +00:00
Steve Checkoway 56d383bc5b Cleanup. 2006-07-25 23:41:15 +00:00
Steve Checkoway 787b5ad09a Cleanup. 2006-07-25 06:17:14 +00:00
Steve Checkoway f254abc777 Create one "now" RageTimer and just pass that around. 2006-07-25 05:31:22 +00:00
Steve Checkoway ff3b8bacbc Fix sscanf() overflow issues. 2006-07-24 09:57:13 +00:00
Steve Checkoway e80defc8df It doesn't take the null into account of the field width. 2006-07-24 09:54:47 +00:00
Steve Checkoway 5b3be8c9fa Handle buffer overflow. 2006-07-24 09:49:39 +00:00
Steve Checkoway ab978ef733 While I'm at it, remove leading and trailing slashes to make the cache files look like "Songs_foo" instead of "_Songs_foo_". 2006-07-24 08:35:33 +00:00
Steve Checkoway 9a21d52d0b Replace invalid utf-8 characters with underscores. Bump cache version. 2006-07-24 08:25:55 +00:00
Steve Checkoway 88c8726834 Add/remove files. 2006-07-24 06:09:24 +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 c72c23f035 Remove empty ctor and dtor. This class has no member variables. It would probably work just as well as a namespace but I don't know how that would interact with lua. 2006-07-24 05:56:16 +00:00
Steve Checkoway 52d48a1eac CanAutoGenStepsType. For some reason lights cannot be autogenned. I've moved that from Song to GameManager. Whenever this restriction is lifted (I don't know why the restriction exists), it should be changed to ST_FLAGS_NONE. 2006-07-24 05:01:48 +00:00
Steve Checkoway 5da3ac8f36 Avoid copying TapNote where possible and implement some of these algorithms in terms of NoteData::iterators which take constant time to move to the next element rather than GetTapNote which takes logarithmic time. 2006-07-24 04:53:24 +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
Steve Checkoway 20b45c5243 TapNotes are not huge structures but there are generally a lot of them and they do contain at least one nontrivial ctor so avoid making copies of them when possible. 2006-07-24 04:42:08 +00:00
Steve Checkoway 1ca8ec0f11 -30 -> 30 2006-07-24 03:03:43 +00:00
Steve Checkoway 018d862f06 PlayerShared. 2006-07-24 01:12:40 +00:00
Steve Checkoway b5665afe2a Fix typo. Add JudgmentTransformSharedCommand. 2006-07-24 01:06:18 +00:00
Steve Checkoway 03f1e21df4 Spaces between arguments. 2006-07-24 00:14:04 +00:00
Steve Checkoway 73ce25c313 Spacing to make these easier to read. 2006-07-23 23:55:16 +00:00
Steve Checkoway aef5009bfc No, not really. 2006-07-23 23:49:52 +00:00
Steve Checkoway d671011285 Show a combo if showing judgment, not if showing the note field. 2006-07-23 23:48:14 +00:00
Steve Checkoway 4a832e461f Run the overlay's off command. 2006-07-23 22:43:28 +00:00
Steve Checkoway 36b1ff3df8 Don't make unnecessary copies. 2006-07-23 21:44:35 +00:00
Steve Checkoway b0496fbcb6 Split out HideNote. Make fewer copies of TapNotes. 2006-07-23 21:35:41 +00:00
Steve Checkoway 1b2f2b9cec Handle counting notes separately if the game type does that. 2006-07-23 21:12:39 +00:00
Steve Checkoway c690814aad Comment. I don't have time to fix this tonight. 2006-07-22 09:07:03 +00:00
Steve Checkoway a8aeb38a57 Fix ghost arrow flashes by handling those at the actual step but handle the scores during Update. 2006-07-22 09:01:19 +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 9f1bb1e16f Simplify. 2006-07-21 08:01:28 +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 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 e8fc52e540 Simplify this. 2006-07-21 04:13:31 +00:00
Steve Checkoway 6124d987b1 Fix mine avoidance. 2006-07-21 04:07:19 +00:00
Steve Checkoway df915a60ca Show judgments for all players. (They currently overlap but I think that's just metrics.) 2006-07-20 08:51:59 +00:00
Steve Checkoway 66012f7a35 Cleanup. 2006-07-20 08:50:16 +00:00
Steve Checkoway eb344e593b Fix ghost arrow flashes for the other players with combined note fields. 2006-07-20 08:42:47 +00:00
Steve Checkoway 93d8db14c7 Fix mines. Now they explode again. 2006-07-20 08:15:10 +00:00
Steve Checkoway 705d929106 Handle avoided mines. Hit mines are still broken. 2006-07-20 07:31:39 +00:00
Steve Checkoway 8292201ad6 Step scores are now handled during Update so make sure all Steps happen in Update before we check the rows so that we don't have to wait for the next frame. 2006-07-20 07:16:06 +00:00
Steve Checkoway 232a3c10b0 Nudge these together. 2006-07-20 06:42:25 +00:00
Steve Checkoway b38a2797ea ScreenDemonstration falls back on ScreenJukebox. Set these for ScreenJukebox so that after the song, it just fades out and then the next one fades in. 2006-07-20 04:54:33 +00:00
Steve Checkoway 61624d6539 This is handled by ScreenJukebox. 2006-07-20 04:36:15 +00:00
Steve Checkoway b8ab1f7393 Fix possible crash if Player accesses the NoteData in it's dtor and the Player is a PlayerPlus. Now just treat PlayerPlus as a smart pointer to a Player with the added Load( const NoteData& ) member function. This is only a connivence class anyway. 2006-07-20 02:19:03 +00:00
Steve Checkoway 29e6e796ba Simplify and speed up loading (very very slightly). It would be fastest to add all BPM/stop segments to the array and then sort it once (n log n). It was sorting after every insertion (n^2 log n). This now does simple insertion sort so it's n^2 in the worst case but since upper_bound does a binary search, if the BPM segments are in order this will take n log n in the best case.
That said, you'll notice no difference unless you had thousands of BPM changes in a file.
2006-07-20 01:56:17 +00:00
Steve Checkoway 4f4e034af1 Ignore invalid BPM changes. No more nonpositive BPMs. 2006-07-20 01:46:01 +00:00
Steve Checkoway a07e194cf1 Revert. Fixes Linux build. 2006-07-18 05:51:37 +00:00
Steve Checkoway 61739160fe Handle the new clock api "correctly." At least differentiate CLOCK_MONOTONIC and CLOCK_REALTIME. Mac OS X uses the former for timers and is forced to use the latter for the pthread functions. 2006-07-18 04:39:30 +00:00
Steve Checkoway df4d41da4a Simplify. GetMicrosecondsSinceStart need not actually be set to the beginning of SM. That's handled elsewhere. 2006-07-18 04:19:25 +00:00
Steve Checkoway bea4177222 Remove unneeded assert. 2006-07-18 03:57:31 +00:00
Steve Checkoway 4f8049377b The default ctor gets the time. Avoid that since we're setting it to the value of the timeval. 2006-07-18 03:53:21 +00:00
Steve Checkoway fbbdc5657a Fix warning (although I think the compiler should really be able to figure this one out on its own). 2006-07-18 02:29:10 +00:00
Steve Checkoway 4efb7c4078 Fix misses count twice. Do not assume that rows are judged in order. Do not judge a row more than once. The JudgedRows class acts like an array of bools (more or less), one per note row but is implemented as a circular buffer (more or less). Note that m_JudgedRows[i] will only return false one time. After that, it is assumed to have been judged. 2006-07-18 00:26:37 +00:00
Steve Checkoway 79f3d0b76e foo* bar -> foo *bar. 2006-07-17 03:01:49 +00:00
Steve Checkoway 00878e4ef9 Const. 2006-07-17 02:59:57 +00:00
Steve Checkoway 649cb46a15 Unused. 2006-07-17 02:59:35 +00:00
Steve Checkoway 8db5d63e1e This is almost completely a ScoreKeeperNormal now. Perhaps this should be put in SKNormal and this calls can be removed. 2006-07-17 01:03:30 +00:00
Steve Checkoway 58847ff1b9 Use one ScoreKeeper per Player (as is normal) but share master player's NoteData with the other Players. Note that this means that multiple Players may be updating the same NoteData. This should not matter as the Player should only deal with notes it owns. 2006-07-17 01:02:31 +00:00
Steve Checkoway 8ab760a346 Put the NoteData into the PlayerInfo and use that for constructing Players. Use the Player's (new) interface GetNoteData() for everything except for loading where ScreenGameplay needs to actually modify the NoteData so do it directly via the PlayerInfo. 2006-07-17 00:58:33 +00:00
Steve Checkoway 8502fc3083 Use PlayerPlus (a Player plus a NoteData, this gives the old behavior of Player, i.e. calling Load( nd )). 2006-07-17 00:56:23 +00:00
Steve Checkoway d46ec7136e Pass in a PlayerNumber as well.
(This breaks other code, commits coming.)
2006-07-17 00:54:46 +00:00
Steve Checkoway 807e24827c Keep a (nonconst) reference to a NoteData rather than owning the NoteData. Replace calls to Load( nd ) by making the changes to the underlying NoteData and calling Load().
(This breaks other code, commits coming.)
2006-07-17 00:54:19 +00:00
Steve Checkoway b1d08d1f8b This is still a work in progress (although I haven't worked on it in over a month). 2006-07-17 00:44:38 +00:00
Steve Checkoway bd7422ef6e Specialize on aligned loads for sse since misaligned loads are much slower. 2006-07-17 00:42:46 +00:00
Steve Checkoway 7be6e20fe3 Cleanup. 2006-07-16 18:34:56 +00:00
Steve Checkoway 108810fe14 No really, cleanup. 2006-07-16 07:23:57 +00:00
Steve Checkoway ba8fb41231 Simplify. 2006-07-16 07:23:12 +00:00
Steve Checkoway ad1e7b4afa Cleanup. 2006-07-16 07:20:50 +00:00
Steve Checkoway e1572442b3 cleanup 2006-07-16 03:14:26 +00:00
Steve Checkoway 90e9d6d57c Don't clamp to 3 seconds. 2006-07-16 03:14:03 +00:00
Steve Checkoway abaeb8b2f4 Missing metric. 2006-07-14 22:22:22 +00:00
Steve Checkoway bd47324c0c Add missing strings. 2006-07-14 22:20:35 +00:00
Steve Checkoway 6ee71e464b It looks strange having the Background menu items have no text so add some defaults. 2006-07-14 22:00:12 +00:00
Steve Checkoway 84c50ccfdb Cleanup. 2006-07-14 21:39:08 +00:00
Steve Checkoway b8a3a8b0f0 Oops. 2006-07-14 21:34:17 +00:00
Steve Checkoway 39b27416b6 Don't theme file names. 2006-07-14 21:33:08 +00:00
Steve Checkoway d873b24bfc Resize the answers during load menu. Fixes the crash in ScreenEdit when 'b' is pressed. 2006-07-14 21:27:18 +00:00
Steve Checkoway bf5deb1ee3 Add ScoreKeeper.cpp 2006-07-14 21:03:55 +00:00
Steve Checkoway e65388190f compile fix. 2006-07-14 04:21:09 +00:00
Steve Checkoway 3c8591fdbf Add file. 2006-07-14 04:20:37 +00:00
Steve Checkoway 743d2b9697 Change the api to take a NoteData and a row. Let the score keepers decide what they want to do with the row. 2006-07-14 04:19:30 +00:00
Steve Checkoway af1652ef28 Add a PlayerNumber. If pn = PLAYER_INVALID, then count all tap notes, irrespective of player. If tn.pn = PLAYER_INVALID, count it. 2006-07-14 04:14:51 +00:00
Steve Checkoway 753d33e752 Add files. 2006-07-13 08:39:03 +00:00