Commit Graph

323 Commits

Author SHA1 Message Date
Glenn Maynard 3a63f5b7ef as well as during load, set LoadingScreen during BeginScreen.
Scripts can already use GetTopScreen to get this.  However, that function
also returns data that may not be what's wanted.  For example, commands
can be run on screens that aren't on top (eg. via broadcasts).  So, using
GetTopScreen as a fallback for LoadingScreen may cause latent bugs;
screens should behave properly even when they're not on top, even if
they're using queued broadcasts to kick off animations, etc.
2006-01-14 05:32:54 +00:00
Glenn Maynard a462b2a640 fix screens not being unloaded correctly when not DelayedScreenLoad 2006-01-11 00:59:38 +00:00
Glenn Maynard e16a396868 split out GrabPreparedActors 2006-01-11 00:54:45 +00:00
Glenn Maynard a9020229ee fix screen preloading when DelayedScreenLoad 2006-01-10 00:15:53 +00:00
Glenn Maynard f10898b806 Oops. We started setting the theme's expected coordinate space
in Screen, by calling SetFOV to make ActorFrame do LoadMenuPerspective.
That broke screen backgrounds, which are rendered outside of any
screen, so they always used 640x480 (the default).
2006-01-01 03:47:02 +00:00
Steve Checkoway ada5f4f00f Use ASSERT like a function. 2005-12-30 13:19:40 +00:00
Glenn Maynard 61c5ab9cb1 unued 2005-12-30 04:22:04 +00:00
Chris Danford 5d7885c764 move game prefs into PrefsManager 2005-10-27 04:54:45 +00:00
Glenn Maynard f413d3e412 If a screen has no BG, we create a blank Actor without looking at g_vPreparedBackgrounds.
Don't put them on there when we're done; they'll never be reused.
2005-10-25 12:42:32 +00:00
Chris Danford ced0a0c6e9 fix transition sounds playing when attract sounds are off 2005-10-13 22:07:40 +00:00
Glenn Maynard e7caafa45c Fix screens occasionally being loaded twice. 2005-10-13 05:18:45 +00:00
Glenn Maynard c21b8ad7a9 simplify (prep for a fix) 2005-10-13 05:10:52 +00:00
Glenn Maynard 57153b6c6c All of these should be played during silent attract (except for Invalid). Remove
volume setting (that was the same as m_bIsCriticalSound).
2005-10-04 07:47:15 +00:00
Chris Danford 15880eafd6 When in attract and not playing attract sounds, have SOUNDMAN only play sounds with RageSoundParams.m_bCriticalSound == true.
Currently, only the coin sound has RageSoundParams.m_bCriticalSound = true.
2005-10-04 06:51:06 +00:00
Chris Danford 65d71a4f23 expermienting with DEFINE_METHOD macro for Lua methods 2005-09-10 02:47:04 +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 2d0ad05ebf comment 2005-08-29 00:47:45 +00:00
Glenn Maynard 4b17b13683 Log texture diags when loading a screen, not when pushing, so we don't cause a skip when pushing a prepared screen. 2005-08-25 18:12:23 +00:00
Glenn Maynard 65beab6826 short circuit on already prepared 2005-08-15 15:44:29 +00:00
Glenn Maynard d0c14b9187 pull out RunConcurrentlyPrepareScreen 2005-08-15 15:19:34 +00:00
Glenn Maynard 1fd5a40e92 log background loads 2005-07-29 04:08:33 +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 9cf25ad2b1 flush before deleting screens 2005-07-23 06:36:11 +00:00
Glenn Maynard 703c96a53a prefer to call ZeroNextUpdate before we spend the time that we want to zero,
not after
2005-07-23 06:30:22 +00:00
Glenn Maynard 91e367754a pull out ScreenIsPrepped 2005-07-23 03:31:43 +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 d38a2e9c33 ctor, comment, cleanup 2005-07-22 07:15:57 +00:00
Glenn Maynard 3f3a782daf not a reference 2005-07-22 07:13:52 +00:00
Glenn Maynard 8e96f9a233 const 2005-07-22 07:11:49 +00:00
Glenn Maynard 67f6e76b3b tabs 2005-07-22 05:45:46 +00:00
Glenn Maynard d41ba9480c more to implementation 2005-07-22 05:44:54 +00:00
Glenn Maynard 4aaf18959d tabs 2005-07-22 05:39:52 +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 c617484b13 fix log 2005-07-21 05:44:51 +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 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 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 a305c072c0 cleanup 2005-07-19 06:20:18 +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 835b688529 call BeginScreen() on push 2005-07-15 01:17:34 +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 e1dae4bf04 dumb fix 2005-07-13 06:49:30 +00:00
Glenn Maynard a6cb2db9f2 implement ConcurrentlyPrepareScreen and IsConcurrentlyLoading 2005-07-13 06:44:44 +00:00
Glenn Maynard 8256cf3b4c call ProcessMessages 2005-07-12 03:12:18 +00:00