Commit Graph
107 Commits
Author SHA1 Message Date
Steve Checkoway d12e579038 Use MapLog to keep track of the top screen. It's a bit buried in the crashinfo.txt, but still there. 2007-08-16 08:01:29 +00:00
Steve Checkoway 2f672bca45 Add a wrapper function to get the Top Screen's name. Useful for debugging when you don't want to pull in ScreenManager.h. 2007-08-15 06:17:41 +00:00
Glenn Maynard 0db3211c34 simplify SystemMessage 2007-02-16 02:25:24 +00:00
Glenn Maynard 35fb88e5e5 Drop generic concurrent rendering. It makes too many things very
complicated, and I don't trust it at a high level: it makes too
many unchecked things concurrent, so I think it will make things
brittle.
2006-11-13 21:04:17 +00:00
Glenn Maynard 16e6219b70 unused headers 2006-09-08 02:58:56 +00:00
Steve Checkoway 4239a8cf7c Cleanup. 2006-09-02 06:05:17 +00:00
Glenn Maynard b33e00d00f ScreenManager::GetScreen 2006-08-31 20:46:58 +00:00
Glenn Maynard 3dbd1bec71 return a bool: true if all parts loaded 2006-06-24 00:59:23 +00:00
Chris Danford 58a6402201 play cancel sound when using CancelTransitionsOut, not start sound 2006-03-08 23:58:37 +00:00
Glenn Maynard 7df95cd0d4 ScreenType is being overloaded in incompatible ways:
- the editor sets "system_menu" to trick StepMania.cpp into not
   allowing the operator menu button, to prevent losing data;
 - the editor also sets "gameplay" in "playback" mode to influence
   ScreenSyncOverlay and ScreenDebugOverlay; this breaks the above,
   allowing scroll lock in play mode.

A similar problem happens when we push screens: scroll lock works
in the MiniMenus in the editor.

It's semantically unintuitive to call the editor a "system_menu", anyway.

Split out AllowOperatorMenuButton, and use it directly.  Check all
screens, and don't allow it if any screen on the stack disallows it.
2006-02-01 06:54:15 +00:00
Glenn Maynard 53aafd7bd1 cleanup 2006-01-30 09:16:47 +00:00
Glenn Maynard 7dbb26ca3f remove unused PushScreen
hide MakeNewScreen
2006-01-30 09:15:40 +00:00
Glenn Maynard 21bc8586cd split out ScreenManager::ActivatePreparedScreenAndBackground (no real logic change) 2006-01-25 05:49:49 +00:00
Chris Danford 7f821e8cfc CString -> RString 2006-01-22 01:00:06 +00:00
Chris Danford bb10c7c21f pass around InputEventPlus in Screen::Input instead of multiple input structures 2005-09-05 02:26:50 +00:00
Glenn Maynard d0c14b9187 pull out RunConcurrentlyPrepareScreen 2005-08-15 15:19:34 +00:00
Glenn Maynard 4bcf9fcbfd Calling SetNewScreen when not the top screen on the stack only replaces the
top screen.  This allows a screen to push a helper screen, which can then
enter an entirely separate set of helper screens before one pops back.
(For example, a screen could push ScreenServiceOptions to enter the options
menu, which then replaces itself with the various options menus, and finally
pops back to the original screen when the player backs out entirely.)  (Some
support is still missing to allow non-special-case use of this; coming soon ...)

However, in rare cases we want to kill all screens on the stack, regardless
of how many there are (operator menu).  Fix that case.
2005-07-26 03:08:03 +00:00
Glenn Maynard 44dfb60616 run cleanups after deleting a screen via pop
don't expose DeletePreparedScreens (unneeded; simplify the interface)
2005-07-23 03:09:55 +00:00
Glenn Maynard b293a4490f ironing out preloading logic 2005-07-23 01:18:48 +00:00
Glenn Maynard a0577b80db Refactor prepared screens. This can handle:
- preparing and reusing screens used in a loop (eg. attract), a conceptual stack
   (eg. options menu), or a real stack (ScreenPrompt)
 - automatic cleanup once you load a screen that isn't preloaded; this gracefully
   handles unusual or forgotten exit paths (eg. pressing the system menu button)
 - reusing some screens in a group and loading others on demand
2005-07-22 08:39:07 +00:00
Glenn Maynard d41ba9480c more to implementation 2005-07-22 05:44:54 +00:00
Glenn Maynard 55c0f2b6f4 cleanup 2005-07-22 05:41:51 +00:00
Glenn Maynard 4b1b3277e8 Singleton classes don't need to store their stuff in the class; put it in
the implementation: it's easier to edit without triggering huge rebuilds
that way.

(Hmm.  There's really no benefit, here, to using an anonymous namespace
instead of statics, but it seems better this way and I'm not sure why.
The normal admonitions against global variables don't apply here, since
static avoids namespace pollution and it's a singleton, but maybe it's
just habit asserting itself and anonymous namespaces circumvent that ...)
2005-07-22 05:38:56 +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 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 5856678140 forgotton commit 2005-07-18 19:30:36 +00:00
Glenn Maynard 5ee52b0db5 The screen that pushes a screen sets the pop message, not the pushed screen.
This pushing screens without them needing to be aware of it.  (This will also allow
a pushed screen to replace itself with another pushed screen without having to
propagate the finalization message across; that'll make more sense if the rest of
this pans out ...)
2005-07-18 02:28:16 +00:00
Glenn Maynard fcbe7b1bd7 rename SetFromNewScreen -> PushScreen (it doesn't touch existing screens)
allow pushing screens without having them deleted on pop
2005-07-14 21:42:52 +00:00
Glenn Maynard a6cb2db9f2 implement ConcurrentlyPrepareScreen and IsConcurrentlyLoading 2005-07-13 06:44:44 +00:00
Glenn Maynard 3b54c385a4 remove unused m_vScreensToDelete 2005-07-07 08:18:29 +00:00
Glenn Maynard 39dc127095 delay PopTopScreen like SetNewScreen 2005-07-07 08:14:01 +00:00
Glenn Maynard d1cb4322fc pull out of the header 2005-07-07 04:48:07 +00:00
Glenn Maynard d6c14eac6f If a screen is already prepared, don't reload it in PrepareScreen.
Prepare backgrounds, too.
Disallow calling SetNewScreen from a screen ctor/Init; it complicates things.
When loading a new screen (through LoadDelayedScreen), load the
screen with PrepareScreen, to reduce code paths.
2005-07-03 06:13:30 +00:00
Glenn Maynard 61e795c7ed cleanup 2005-07-03 06:09:03 +00:00
Glenn Maynard 1ae5083fba remove ScreenManager::MiniMenu 2005-07-03 04:52:15 +00:00
Glenn Maynard e7ef5539d0 remove 2005-07-03 04:46:39 +00:00
Glenn Maynard 0e09a3fb3d ScreenPrompt::Prompt, cleaning up ScreenManager 2005-07-03 04:33:22 +00:00
Glenn Maynard 5bdae4fa35 cleanup 2005-07-03 03:44:05 +00:00
Glenn Maynard abac95a1b7 store the path in the actor's name, so we can treat backgrounds like loaded
screens
2005-07-02 22:44:56 +00:00
Glenn Maynard 0d6c835e58 dep cleanup 2005-07-02 22:38:02 +00:00
Glenn Maynard 8364c20850 cleanup, make m_pSharedBGA private 2005-06-19 09:27:18 +00:00
Glenn Maynard a0dcb3dc81 simplify 2005-06-19 08:51:09 +00:00
Chris Danford c2a8150f16 add HideSystemMessage 2005-06-15 10:01:08 +00:00
Chris Danford 659def4479 fix Pop message doesn't get sent if more than 1 prompt screen on the stack 2005-03-23 06:46:24 +00:00
Chris Danford 6adaa3f1a2 Add cancel transition for STextEntry
Validate new edit name is unique
2005-03-23 05:12:31 +00:00
Chris Danford ee4be22260 add input length cap
fix bogus s_bCancelled flag
2005-03-23 04:08:27 +00:00
Chris Danford 9cfa779956 remove code to play cancel sound and put the cancel sound in the transition 2005-03-20 08:23:08 +00:00
Chris Danford 48e6cb1a69 rename back -> cancel because "back" conflicts with "background" 2005-03-20 06:14:41 +00:00
Glenn Maynard c829318686 remove GrabInputFocus and ReleaseInputFocus 2005-03-09 01:35:31 +00:00