Commit Graph

785 Commits

Author SHA1 Message Date
Glenn Maynard 713c95b2b0 Stage refactoring:
- m_iPlayerCurrentStageIndexForCurrentCredit is changed to m_iPlayerStageTokens,
   counting the number of stages left.  This can be incremented and decremented
   (as a bonus or penalty) with no weird side-effects; it is not used to determine
   whether the player is on an extra stage.  This is less brittle; it eliminates
   special cases to avoid incrementing the counter and skipping into an extra stage.
 - Stage tokens are subtracted for each song played, and a player is unjoined
   when he runs out.
 - Stage tokens are subtracted at the start of gameplay.  If the player cancels,
   they're "refunded".  This differs from before, where the stage was incremented
   at the end of gameplay.  This makes the stage token counter meaningful during
   gameplay; if this is done at the end, then it would be too high during gameplay.
 - IsFinalStage is gone.  If needed, use GetSmallestNumStagesLeftForAnyHumanPlayer.
 - Extra stages are awarded by adding a stage token and incrementing
   m_iAwardedExtraStages.  If m_iAwardedExtraStages is 1, the player is
   on his first extra stage; if 2, his second.
2007-04-25 03:50:17 +00:00
Glenn Maynard 8d396834dc remove m_bComboContinuesBetweenSongs 2007-04-25 03:38:40 +00:00
Glenn Maynard 9978102d25 remove unused 2007-04-25 01:17:50 +00:00
Glenn Maynard 6035ff65ed simplify 2007-04-25 01:16:04 +00:00
Glenn Maynard ccc19fa60b Don't track the individual stage with Stage; use the stage index for that.
(Reducing the usage of the "stage" concept.  It conflicts with overlapped
play.)
2007-04-25 01:11:50 +00:00
Glenn Maynard 450ed7120b remove m_bPickExtraStage, use false behavior. Extra stage stuff is way too complicated for too many niche cases. 2007-04-25 00:23:09 +00:00
Glenn Maynard 73c6158bbe simplify: count each stage as one stage, no special case for long songs 2007-04-24 21:37:20 +00:00
Glenn Maynard 21b544c8ae simplify iSaveProfileEvery stuff and make it closer to correct 2007-04-24 19:36:45 +00:00
Glenn Maynard 26dd52583a courses take all stages, but only count as 1 in the stage counter 2007-04-24 18:21:17 +00:00
Glenn Maynard 95fb191fb4 allow loading profile without loading edits 2007-04-24 16:30:23 +00:00
Glenn Maynard 079e0f5397 partial revert (not sure if this is worth maintaining, but it didn't need to
be removed for the last commit)
2007-04-24 01:41:34 +00:00
Glenn Maynard 5318d0670d Previously, BeginStage was called in SGameplay and FinishStage was called
in each place gameplay exits.  This incremented the stage number in SSM,
and was brittle: FinishStage was sprinkled in many odd places.  Do both
in SGameplay.

This increments the stage number as soon as gameplay ends.  This only
affects evaluation.  Use the stage number from StageStats there, instead
of the current stage, and adjust branches.  During evaluation, the
game is on the upcoming stage and displaying old data for the last
stage, instead of the stage continuing through evaluation.

This also moves a bunch of scoring-related stuff out of SEvaluation,
to the end of gameplay, where it belongs.  Eval is almost const, and things
won't break like they would before if Eval is not used.
2007-04-24 01:35:32 +00:00
Glenn Maynard 2bcd5a644f use enum_add2 2007-04-24 01:28:53 +00:00
Glenn Maynard 7de6bd605c revert IsStagePossible; not sure yet 2007-04-24 00:44:51 +00:00
Glenn Maynard 25796bd187 remove IsStagePossible 2007-04-23 23:42:27 +00:00
Glenn Maynard 57bd25bb0c clean m_vPlayedStageStats as players unjoin 2007-04-19 14:34:42 +00:00
Glenn Maynard 1eb380ba2e Eliminate GameState::EndGame; games don't necessarily have distinct
endings.  Update the play timer periodically when we commit scores.
(This timer is a bit different, but reasonable.)
2007-04-19 13:59:38 +00:00
Glenn Maynard a8a4803ed8 working on explicit profile load/saves: do this in a screen, not implicitly
as part of other operations
separate profile loads/locks for each player
2007-04-17 22:27:25 +00:00
Glenn Maynard c7ae4a052b temp fix for a crash 2007-04-17 18:40:57 +00:00
Glenn Maynard afb6bc29d3 don't FinishStage in EndGame 2007-04-17 17:58:51 +00:00
Glenn Maynard 6f0eba5783 remove DefaultCpuModifiers; use Lua if needed 2007-04-17 17:29:54 +00:00
Glenn Maynard 6471f44235 split LoadCurrentSettingsFromProfile 2007-04-16 21:17:26 +00:00
Glenn Maynard d64294dc21 remove PlayersFinalized message 2007-04-16 18:45:51 +00:00
Glenn Maynard 9c87292221 defaults 2007-04-10 18:17:49 +00:00
Glenn Maynard eac521e34a DynamicThemeMetric -> ThemeMetric 2007-04-10 17:51:21 +00:00
Glenn Maynard 18a401afa6 cleanup 2007-04-08 17:38:02 +00:00
Glenn Maynard 6f9157ff61 cleanup 2007-04-08 17:37:25 +00:00
Glenn Maynard 3f776c5bb5 ResetToDefaultPlayerOptions, ResetToDefaultSongOptions 2007-04-06 15:44:39 +00:00
Steve Checkoway dfe930eea9 Fix a crash with SDemo by using the current style if it is set. 2007-04-01 12:05:20 +00:00
Chris Danford edcfb9a990 Calculate stage based on the player with the highest current stage index. 2007-03-27 01:18:45 +00:00
Chris Danford 43ef38383d separate CurrentStageIndex into separate number per game and per player. This allowed for staggered join periods. 2007-03-25 09:37:14 +00:00
Glenn Maynard 6cb000f4fc bindings 2007-03-24 00:43:44 +00:00
Glenn Maynard 03922a91dc fix late join crash 2007-03-21 06:14:04 +00:00
Glenn Maynard 14fbedd1b2 GetNumStagesForSongAndStyle -> GetNumStagesForSongAndStyleType 2007-03-17 23:05:34 +00:00
Glenn Maynard 095b60789c PersonalRecordFeats, CategoryRecordFeats 2007-03-16 08:46:04 +00:00
Glenn Maynard 1adc7dcb0e premium fix 2007-03-12 21:46:25 +00:00
Chris Danford 32586f28e1 add IsStepsPlayable, make IsStepsTypePlayable take the number of stages left into account 2007-03-12 01:47:03 +00:00
Glenn Maynard 61c3a6244c add VisualDelaySeconds 2007-03-09 01:22:09 +00:00
Chris Danford f77d52699f lua binding for GetNumStagesForCurrentSongAndStepsOrCourse 2007-03-07 02:17:12 +00:00
Chris Danford 42b6fe9808 working on late join 2007-03-05 07:03:36 +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 e30b6fe6c2 bind HealthState 2007-02-25 08:23:50 +00:00
Steve Checkoway 0f58d743f9 Spelling in a comment. 2007-02-25 05:01:58 +00:00
Vecais Dumais Laacis a93dbf3778 StyleType_OnePlayerTwoSides for One player, two-sides styles cost extra 2007-02-24 12:48:16 +00:00
Chris Danford 0160e23705 style cleanup: use FOREACH_ENUM( X, x ) everywhere instead of FOREACH_X( x ) for consistency
The FOREACH_X defines are not very useful, and they were created back before FOREACH_ENUM was convenient.
2007-02-23 22:29:42 +00:00
Chris Danford 9061e2c1c1 move stage logic out of SongManager
allow selecting between multiple StepsTypes on ScreenSelectMusic (ala Pump's combined single/double list)
2007-02-23 21:13:45 +00:00
Chris Danford f77647b5ad enum name cleanup: DIFFICULTY_* -> Difficulty_* 2007-02-22 07:18:05 +00:00
Chris Danford 491ab6eaf5 StyleType enum name cleanup 2007-02-22 06:56:17 +00:00
Glenn Maynard 67f372af09 SideJoinedP1, SideJoinedP2 -> PlayerJoined(P1)
move most of ScreenSystemLayer into Lua
2007-02-15 11:30:22 +00:00