Commit Graph
100 Commits
Author SHA1 Message Date
Glenn Maynard eca5d32eb3 fix underlay/overlay; we play the state commands so we can do things with
them in these modes, so don't hide them
2005-07-22 05:02:04 +00:00
Glenn Maynard 209c806bbd simplify 2005-07-22 04:12:56 +00:00
Glenn Maynard 9d65ff798d fix "record empty segment at end doesn't do anything useful" 2005-07-22 04:11:15 +00:00
Glenn Maynard 464bb983ee align record to record length 2005-07-22 02:30:15 +00:00
Glenn Maynard d62fe9be5a EDIT_BUTTON_SCROLL_NEXT_MEASURE, EDIT_BUTTON_SCROLL_PREV_MEASURE 2005-07-22 01:28:20 +00:00
Glenn Maynard 77b30284c4 add QuantizeUp( float ) 2005-07-22 01:22:14 +00:00
Glenn Maynard b2c7e5e829 add "jump to next note", "jump to previous note" 2005-07-22 00:55:36 +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 ea8705fa9d spit out ScreenEdit::ScrollTo 2005-07-21 22:31:09 +00:00
Glenn Maynard 5769d00abf implement GetPrevTapNoteRowForAllTracks 2005-07-21 22:30:00 +00:00
Glenn Maynard c9c59e0882 initial "paused record" mode: record a song measure-by-measure, allowing
replaying and rerecording each section in sequence; when paused, remain
in the record view, so we don't jump around between record and edit views
constantly
2005-07-21 21:23:18 +00:00
Glenn Maynard d5587f37d0 case fix 2005-07-21 20:42:56 +00:00
Glenn Maynard 61c42c4481 simplify 2005-07-21 20:41:26 +00:00
Glenn Maynard fc43a6f136 EDIT_BUTTON_RECORD -> EDIT_BUTTON_RECORD_SELECTION 2005-07-21 20:37:04 +00:00
Glenn Maynard 079926c6c3 cleanup; always commit recorded data when exiting record, not just when entering edit (though we only go from record -> edit currently) 2005-07-21 06:50:39 +00:00
Glenn Maynard 951c6074b0 cleanup 2005-07-21 06:48:56 +00:00
Glenn Maynard f4cc57514e always stop music and reset m_bPastHereWeGo when changing modes 2005-07-21 06:25:29 +00:00
Glenn Maynard 5a59d42b6d fix editor assert: we Update Player in the editor before calling Load, since
Load loads up and transforms a NoteData, which is pointless to do before
we're ready to play something (cleanups needed ...)
2005-07-21 06:17:04 +00:00
Glenn Maynard 9547906a6c cleanup 2005-07-21 05:58:34 +00:00
Glenn Maynard a2ad4d61b9 GameSoundManager handles the timer by default 2005-07-21 05:53:05 +00:00
Glenn Maynard c617484b13 fix log 2005-07-21 05:44:51 +00:00
Glenn Maynard 83bae991b9 undo; not needed and causes crashes elsewhere 2005-07-21 05:33:08 +00:00
Glenn Maynard fa7d6d4960 fix area menu 2005-07-21 05:17:36 +00:00
Glenn Maynard d038d2446e TransitionEditState does this 2005-07-21 03:09:33 +00:00
Glenn Maynard fe240ddcd9 it's typically not useful to leave the cursor where it was when exiting play/record, so restore the cursor position. (do leave the cursor where it is when exiting play mode explicitly) 2005-07-21 02:44:53 +00:00
Glenn Maynard d4afd9c47c fix range check (do it after quantizing) 2005-07-21 02:22:07 +00:00
Glenn Maynard a858eca8b0 edit state has its own PlayerState; reset options here 2005-07-21 01:59:13 +00:00
Glenn Maynard 792ae76f4c edit state has its own PlayerState; reset attacks here 2005-07-21 01:56:49 +00:00
Glenn Maynard b36673fc9a fix g_CourseMode 2005-07-21 01:52:01 +00:00
Glenn Maynard f183e5efda highlight the section being recorded; this makes it clear why you can't insert notes during the lead-in and shows when the region will end 2005-07-21 01:22:10 +00:00
Glenn Maynard 8696548ac6 copy data from the range given (which may not be the same as the selection) 2005-07-21 01:19:48 +00:00
Glenn Maynard ec43e2efb9 Don't extend hold notes outside of the range. Extend record slightly if a button is being held, to allow placing hold notes near the end of the region. 2005-07-21 01:17:51 +00:00
Glenn Maynard c316b4ec7e move m_PlayerStateEdit init nearer to where it's used 2005-07-21 01:06:53 +00:00
Glenn Maynard f0e4bff570 avoid accessing m_PlayerStateEdit directly 2005-07-21 01:04:54 +00:00
Glenn Maynard 7570946554 add GetPlayerState 2005-07-21 01:02:21 +00:00
Glenn Maynard 2438865137 snap to where we started playing if we exit play/record by finishing the region (not jumping to the possibly irrelevant selection) 2005-07-21 00:44:18 +00:00
Glenn Maynard b54bbafa1f cleanup 2005-07-20 22:22:43 +00:00
Glenn Maynard 768409d479 simplify 2005-07-20 22:19:14 +00:00
Glenn Maynard 1f75787d48 static 2005-07-20 19:19:14 +00:00
Glenn Maynard a43388d2ba remove unused random banner code 2005-07-20 10:12:47 +00:00
Glenn Maynard 7d6d8eb98a cleanup 2005-07-20 10:07:43 +00:00
Glenn Maynard 09e64b25b6 cleanup 2005-07-20 09:57:42 +00:00
Glenn Maynard ea3e2ba6f9 remove Screen.h dep on ScreenManager.h. (this looked more useful before pulling in the higher-level includes, but still seems like the right thing to do) 2005-07-20 09:49:46 +00:00
Glenn Maynard 6ac51af9c2 header 2005-07-20 09:48:19 +00:00
Glenn Maynard e78efb0b9d cleanup 2005-07-20 09:38:10 +00:00
Glenn Maynard 226ba99406 remove obsolete comment 2005-07-20 09:29:41 +00:00
Glenn Maynard b81fdd8e4e allow redo
allow undo through revert
2005-07-20 06:47:30 +00:00
Glenn Maynard 9cf604c036 support laying mines and rolls in record mode (will need to overlap records
several times to lay both mines and taps in the same spot)
2005-07-20 05:45:16 +00:00
Glenn Maynard 34383cc05b g_ -> m_ 2005-07-20 05:38:12 +00:00
Glenn Maynard 7e59b56deb when recording in a range, don't change the steps outside of the range 2005-07-20 05:35:10 +00:00
Glenn Maynard cc1d203afe Give time-based lead-in for record, like play, not a whole measure (and merge
code).

Only pad the end position by a measure when playing the whole song, not
when playing a selection.

Don't pad when recording.  It'll jump to the end position, anyway.

Don't mess up the user's selection range when using play from
start/play from cursor.
2005-07-20 05:26:27 +00:00
Glenn Maynard c617d0c50b move common state change code into TransitionEditState and merge
duplicate code to start the sound
2005-07-20 05:07:07 +00:00
Glenn Maynard db22dcf5e0 common code 2005-07-20 05:02:56 +00:00
Glenn Maynard 611ae2449d g_iShiftAnchor -> m_iShiftAnchor 2005-07-20 04:50:06 +00:00
Glenn Maynard 4d2e2cd3c1 simplify: we only need to set m_NoteDataRecord; calling NoteField::Load
again is not necessary
2005-07-20 04:48:26 +00:00
Glenn Maynard 1a15361464 simplify 2005-07-20 03:10:15 +00:00
Glenn Maynard 21fe0c4fb2 unneeded 2005-07-20 03:08:19 +00:00
Glenn Maynard f0e2ff35fc fix chopped-off record; remove redundant m_NoteFieldRecord.Load call 2005-07-20 03:01:58 +00:00
Glenn Maynard e32ed655c9 cleanups 2005-07-20 02:40:20 +00:00
Glenn Maynard 3f05193193 remove edit_bg_change menu options. Use b/shift-b. (removes crash
due to uninitialized g_CurrentBGChangeLayer)
2005-07-20 01:57:53 +00:00
Glenn Maynard 6734b1df8c fix updating g_BackgroundChange 2005-07-20 01:31:07 +00:00
Glenn Maynard 219461a3f1 ScreenPlayerOptionsEdit -> ScreenEditOptions 2005-07-20 00:40:01 +00:00
Glenn Maynard 913b9c52a2 player options -> options 2005-07-20 00:30:19 +00:00
Glenn Maynard ff4188032d remove "preferences"; do this all in one menu (too many menus) 2005-07-20 00:26:16 +00:00
Glenn Maynard 40fc9621da show EditorShowBGChangesPlay in the same options menu 2005-07-20 00:23:05 +00:00
Glenn Maynard d9fdbe6a6b bind EditorShowBGChangesPlay 2005-07-20 00:17:14 +00:00
Glenn Maynard 32fefd9073 This isn't actually a ScreenPlayerOptions. ScreenPlayerOptions is only compatible
with player options, and is only used to handle a few special cases needed in gameplay.
This is just a ScreenOptionsMaster (which won't get confused if non-player options
are used).
2005-07-20 00:15:44 +00:00
Glenn Maynard 7a19b153a3 remove song_options 2005-07-20 00:07:33 +00:00
Glenn Maynard 9464c41f9a separate options for ScreenPlayerOptionsEdit; include useful SongOptions,
too
2005-07-20 00:05:29 +00:00
Glenn Maynard 39d42a9db4 Use SCREENMAN->MakeNewScreen, so we obey the class of the
loaded screen.  We don't require anything special of it.
2005-07-19 23:58:51 +00:00
Glenn Maynard e996181415 make MakeNewScreen public 2005-07-19 23:51:45 +00:00
Glenn Maynard cc827025ea merge MakeNewScreenInternal and MakeNewScreen 2005-07-19 23:49:39 +00:00
Glenn Maynard 509055d9f7 SONGMAN->Cleanup only in the Prepare code path. There's no point to doing it in the AddNewScreenToTop path. 2005-07-19 23:30:24 +00:00
Glenn Maynard de950a3190 We call ZeroNextUpdate when we know we have a frame skip, and we're deliberately masking it by clamping the first update. Reset FPS stats when we do that, not after creating a screen (which might be concurrent). 2005-07-19 23:22:50 +00:00
Glenn Maynard dcc3e1e588 Don't reset HandleSongTimer here; we might still be in the middle of the previous screen. Do this in SM_LoseFocus. 2005-07-19 22:58:31 +00:00
Glenn Maynard 635b6e805a cleanup 2005-07-19 22:47:49 +00:00
Glenn Maynard f7e6c71a43 preload most editor menus 2005-07-19 21:43:12 +00:00
Glenn Maynard 2aecc20155 don't call Init from LoadMenu; split out SetOKMessage, SetCancelMessage to allow reusing screen without using LoadMenu (which is cheap but not free) 2005-07-19 21:39:25 +00:00
Glenn Maynard 798c100457 Init -> LoadMenu, to maintain the normal virtual Init(), and allow calling LoadMenu again without reloading the whole screen 2005-07-19 21:35:38 +00:00
Glenn Maynard c84ff55345 remove m_Background; use underlay 2005-07-19 21:12:01 +00:00
Glenn Maynard fb1e7325b2 background -> underlay 2005-07-19 21:09:30 +00:00
Glenn Maynard 845c857962 ScreenMiniMenu::BeginScreen 2005-07-19 21:05:57 +00:00
Glenn Maynard a10e6f3d36 handle re-calling InitMenu (fairly cheaply) 2005-07-19 21:03:56 +00:00
Glenn Maynard 019000a40e remove m_bIsTransparent 2005-07-19 21:01:50 +00:00
Glenn Maynard 61bf554727 remove IsTransparent. Since we have a separate background layer now, every screen is transparent. 2005-07-19 20:59:15 +00:00
Glenn Maynard 38566406ec typo 2005-07-19 18:58:12 +00:00
Glenn Maynard 9fb747a820 simplify 2005-07-19 18:56:50 +00:00
Glenn Maynard f9e40278dd fix uninitialized 2005-07-19 08:52:36 +00:00
Glenn Maynard 2dd114942b cleanup 2005-07-19 08:36:02 +00:00
Glenn Maynard 56fa4fe4b2 Don't create a TempState for every actor. If we use it, we always use it
right away, inside DrawPrimitives().  This cuts down the size of Actor by
about 25%.
2005-07-19 07:54:32 +00:00
Glenn Maynard df19b084fd sanity check (m_pTempState points somewhere in the other actor) 2005-07-19 07:52:11 +00:00
Glenn Maynard 2e05545ec7 fix memleak 2005-07-19 07:46:45 +00:00
Glenn Maynard 8f8f8d7782 compile fix 2005-07-19 06:54:49 +00:00
Glenn Maynard bd26915d01 don't use deque here; too big for Actor
(not a performance issue; we don't queue up tons of messages.  only use
deque when you really need constant time access to the beginning, eg.
for large objects, since deque has both memory overhead and is much
slower than vector for access to the end of the list, since it can't reserve like
vector can)
2005-07-19 06:34:00 +00:00
Glenn Maynard c05cf4806a yuck. implement copy ctor to copy tweening queue 2005-07-19 06:21:10 +00:00
Glenn Maynard a305c072c0 cleanup 2005-07-19 06:20:18 +00:00
Glenn Maynard c4495e3900 Don't use deque in Actor; it allocates too much. Store pointers; moving
pointers around is cheap enough.
2005-07-19 05:56:36 +00:00
Glenn Maynard 1783fe71ef simplify 2005-07-19 03:15:24 +00:00
Glenn Maynard daf3688409 We don't actually care that GetMicrosecondsSinceStart returns a time since
start; only that it's self-consistent.  If we want time since start, we
can record it ourself instead of making platform-specific code do it, and
only GetTimeSinceStart needs to do that, not RageTimers.
2005-07-19 03:09:20 +00:00