Commit Graph

145 Commits

Author SHA1 Message Date
Chris Danford 167a061b3e fix LockInputSecs not being set correctly, and pressing Start early would choose without starting SM_GoToNextScreen 2009-04-04 17:45:07 +00:00
Chris Danford 7114679d91 all ScreenSelect derivatives already have a hard-coded subscribe to PlayerJoined 2009-02-10 22:44:28 +00:00
Steve Checkoway 3f800ece3d Actually look in the right place for subscriptions. 2009-01-05 08:46:22 +00:00
Steve Checkoway f6edbc8a28 Only subscribe to PlayerJoined a single time. 2009-01-05 07:00:49 +00:00
Chris Danford f3d5c8d865 add Double* difficulty sorts 2008-06-23 10:57:14 +00:00
Chris Danford c7e2b57b5f allow IdleTimeoutSeconds in CoinMode_Pay (remove special case) 2008-06-21 06:44:39 +00:00
Glenn Maynard 2e1705ac46 This is a bit spaghetti right now, and this is compounding it further, so let's
look at all the cases:

Generic ScreenSelect, eg. ScreenSelectStyle:
 A non-joined player START press can join.  On successful join, discard the
 input; the start press that joins the player should not also make a selection
 on the menu.   Non-joined players can make no other inputs.  (ALLOW_DISABLED_PLAYER_INPUT
 is false.)
  - on start press
    - attempt to join the player; if successful:
     - play start sound (normally done by the derived class, eg. ScreenSelectMaster::MenuStart,
       but we're not going there)
     - return, so this start press that just joined the player doesn't also make a selection
    - any other button, return and ignore the press ("block input of disabled players")
  - on any other button press, just ignore it

ScreenJoin:
 Pressing start on a non-joined player joins the player, and unlike the generic case,
 it also passes the start press on as input, selecting the default option and starting the
 game.  (ALLOW_DISABLED_PLAYER_INPUT is true.)

 We don't have any visible menu selections, so other player inputs don't matter.
  - This screen assumes that a player can join, and that the first successful join
    will move on.  Pressing start and having it not join has never been tested or
    used, and in fact crashes: it'll be passed on as a selection, and
    SM_BeginFadingOut dies, because m_MasterPlayerNumber is invalid.
 
ScreenTitleMenu:
 Like SJoin, pressing start will select the current option and start the game.  Unlike
 SJoin, this screen has options; arrow key inputs on a non-joined player must be
 passed on, so the cursor can be moved.  (ALLOW_DISABLED_PLAYER_INPUT is true.)

This "always joins" assumption is bad, and was probably never intended.  Fix by
never allowing start on a non-joined player (unless the start just joined the
player, in which case he'll be joined by the time of this check).
2008-06-11 22:13:26 +00:00
Glenn Maynard 29936c8a2d Don't respond to players joining by catching GB_START; other code can cause a join, too. Watch the Message_PlayerJoined message instead. 2008-05-28 00:53:42 +00:00
Chris Danford d377c2b1a4 MENU_BUTTON_ -> GAME_BUTTON_ 2008-05-21 05:36:09 +00:00
Glenn Maynard 7f08da77f1 set all lights modes in metrics (except for a couple programmatic ones
for now)
2007-06-14 13:38:26 +00:00
Glenn Maynard 743421f88f some MENU -> GAME 2007-05-10 17:59:13 +00:00
Glenn Maynard b1c26c4869 PlayersFinalized removed 2007-04-18 03:55:06 +00:00
Glenn Maynard 1189f94ede generalize CodeNames 2007-03-16 23:33:41 +00:00
Glenn Maynard dc8a6ee910 move CodeItem into InputQueue
rename to InputQueueCode
2007-03-15 20:44:18 +00:00
Chris Danford cf80f30e3b beginnings of late join 2007-03-04 08:52:06 +00:00
Chris Danford 0c972a4dd7 cleanup CoinMode and Premium names 2007-02-26 09:40:14 +00:00
Glenn Maynard 8dbb54a1c6 do check msg.GetName() 2007-02-03 06:02:46 +00:00
Glenn Maynard 7ef6009567 Screen::JoinInput -> GameState::JoinInput 2006-11-21 19:57:58 +00:00
Glenn Maynard d591926ff7 Don't play sounds in JoinInput; let the caller do that.
Localize "only play start sound for the 2nd player who joins"
hack into ScreenSelect.
2006-11-21 19:52:18 +00:00
Glenn Maynard 9195740ded cleanup 2006-11-21 19:39:17 +00:00
Glenn Maynard 27fdc9101f join on IET_FIRST_PRESS only 2006-11-21 19:37:16 +00:00
Glenn Maynard 93efb67216 correct base 2006-11-21 19:33:24 +00:00
Glenn Maynard 52009ae6ee I'm not sure what was happening here:
If ALLOW_DISABLED_PLAYER_INPUT is true (only ScreenTitleMenu), then
ScreenSelect::Input doesn't do JoinInput ("the player will be joined
and the user will still be on the title menu").  However,
ScreenSelectMaster::MenuStart does the JoinInput anyway, so this still
happens.

If we want to have main menu options that don't load a screen, this
code path should be refactored a bit, to ask the derived class whether
the selection should also join.  As is, it's just making the JoinInput
path complicated.
2006-11-21 19:28:42 +00:00
Glenn Maynard 00fdeac301 remove empty 2006-11-21 19:06:54 +00:00
Glenn Maynard 44bb231639 separate slightly confusing logic - send COIN inputs with the normal input path 2006-11-21 19:04:24 +00:00
Glenn Maynard a5f5fa0b78 HandleMessage( Message ) 2006-11-13 23:11:25 +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
Steve Checkoway 6ea2a41b00 Cleanup RageException::Throw(). Do not use ssprintf() inside of Throw() and do not pass it bare error messages. Use RageException::Throw( "%s", sError.c_str() ); instead. Be consistent with quoting file names "%s" and theme metrics as "%s : %s". Try to make them complete English sentences when possible. 2006-09-17 01:19:19 +00:00
Steve Checkoway 944a913790 PlayerNumber -> IEP. 2006-09-15 01:47:24 +00:00
Glenn Maynard ad809ec5fa simplify interface 2006-09-14 08:14:22 +00:00
Glenn Maynard 2b5cbe811f check the button press in the caller of JoinInput (so we
don't have to construct a fake input message in
ScreenSelectMaster::MenuStart)
2006-09-14 08:11:58 +00:00
Glenn Maynard 3fe68d7f7d simplify 2006-09-14 05:18:40 +00:00
Glenn Maynard 754f2edb0f JoinInput(MenuInput ) -> JoinInput(InputEventPlus) 2006-09-14 03:23:17 +00:00
Glenn Maynard c9c88f26c2 input.MenuI.player -> input.pn 2006-09-14 03:18:16 +00:00
Glenn Maynard 7b995b8487 remove unused 2006-08-20 20:01:53 +00:00
Glenn Maynard f0b5e93621 This is the only place GetMetricM is still used; remove it 2006-08-20 19:39:59 +00:00
Chris Danford 1aa0b38c9f fix SUnlockBrowse unlocking entry 1 when all entries are disabled 2006-06-05 07:36:23 +00:00
Glenn Maynard ed60014bb3 fix ScreenSelect ignores StopMusicOnBack 2006-02-25 00:51:30 +00:00
Chris Danford 6ec1d47d6c tab cleanup 2006-01-29 00:25:33 +00:00
Chris Danford 7f821e8cfc CString -> RString 2006-01-22 01:00:06 +00:00
Glenn Maynard 409bc25090 simplify, use GetNextScreen 2006-01-20 06:41:15 +00:00
Glenn Maynard 5a3f362f5d load in Init() 2006-01-15 19:29:33 +00:00
Glenn Maynard f6ea595c12 load in Init() 2006-01-15 19:22:17 +00:00
Glenn Maynard c5b71c0631 remove logs (this stuff predates the crash handler and has been copied
and pasted around since)

jesus we have a lot of screens
2006-01-15 08:54:03 +00:00
Glenn Maynard 6467fa0bc4 simplify, eliminate GetAndClearScreen 2006-01-15 08:09:03 +00:00
Glenn Maynard 9eb3430ebd reset idle timers in BeginScreen 2006-01-10 00:14:35 +00:00
Chris Danford 37f82b43f7 remove CStringArray #define 2005-12-09 21:36:22 +00:00
Glenn Maynard 25ee89ef33 Remove SM_AllDoneChoosing. ScreenSelects just send SM_BeginFadingOut when
done.  This is much simpler, and fixes concurrent loads starting late.
2005-10-14 02:13:13 +00:00
Glenn Maynard fce721238e cleanup: StopTimer in ScreenSelect 2005-10-13 22:59:53 +00:00
Glenn Maynard dfc67cd84d ScreenWithMenuElements::StartTransitioning -> StartTransitioningScreen, to make searching
for it easier (vs. Transition::StartTransitioning).  (Trying to simplify tweening; this
may go back later.)
2005-10-13 22:17:13 +00:00