From 4fa5f867e13e215848b938f622a4155955b73eb7 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Thu, 11 Mar 2004 06:46:52 +0000 Subject: [PATCH] add macros: FOREACH_HumanPlayer, FOREACH_EnabledPlayer --- stepmania/src/GameState.cpp | 14 +++----------- stepmania/src/PlayerNumber.cpp | 21 +++++++++++++++++++++ stepmania/src/PlayerNumber.h | 5 +++++ 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 5205dcdfb3..ef81001f39 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -784,11 +784,8 @@ void GameState::GetFinalEvalStatsAndSongs( StageStats& statsOut, vector& /* XXX: I have no idea if this is correct--but it's better than overflowing, * anyway. -glenn */ - for( int p=0; pm_StoredPlayerOptions[p] = this->m_PlayerOptions[p]; m_StoredSongOptions = m_SongOptions; } @@ -1038,13 +1035,8 @@ void GameState::AdjustFailType() /* Find the easiest difficulty notes selected by either player. */ Difficulty dc = DIFFICULTY_INVALID; - for( int p=0; pIsHumanPlayer(p) ) - continue; // skip - + FOREACH_HumanPlayer( p ) dc = min(dc, this->m_pCurNotes[p]->GetDifficulty()); - } /* Reset the fail type to the default. */ SongOptions so; diff --git a/stepmania/src/PlayerNumber.cpp b/stepmania/src/PlayerNumber.cpp index 687b489d25..9705b34a05 100644 --- a/stepmania/src/PlayerNumber.cpp +++ b/stepmania/src/PlayerNumber.cpp @@ -12,6 +12,7 @@ #include "PlayerNumber.h" #include "ThemeManager.h" +#include "GameState.h" #define COLOR_P1 THEME->GetMetricC("Common","ColorP1") @@ -33,3 +34,23 @@ RageColor PlayerToColor( int p ) return PlayerToColor( (PlayerNumber)p ); } +PlayerNumber GetNextHumanPlayer( PlayerNumber pn ) +{ + for( PlayerNumber p=(PlayerNumber)(pn+1); pIsHumanPlayer(p) ) + return p; + } + return PLAYER_INVALID; +} + +PlayerNumber GetNextEnabledPlayer( PlayerNumber pn ) +{ + for( PlayerNumber p=(PlayerNumber)(pn+1); pIsPlayerEnabled(p) ) + return p; + } + return PLAYER_INVALID; +} + diff --git a/stepmania/src/PlayerNumber.h b/stepmania/src/PlayerNumber.h index fc334ed26d..7c02c2367d 100644 --- a/stepmania/src/PlayerNumber.h +++ b/stepmania/src/PlayerNumber.h @@ -28,6 +28,11 @@ enum PlayerNumber { PLAYER_INVALID }; #define FOREACH_PlayerNumber( pn ) FOREACH_ENUM( PlayerNumber, NUM_PLAYERS, pn ) +#define FOREACH_HumanPlayer( pn ) for( PlayerNumber pn=(PlayerNumber)0; pn!=PLAYER_INVALID; pn=GetNextHumanPlayer(pn) ) +#define FOREACH_EnabledPlayer( pn ) for( PlayerNumber pn=(PlayerNumber)0; pn!=PLAYER_INVALID; pn=GetNextEnabledPlayer(pn) ) + +PlayerNumber GetNextHumanPlayer( PlayerNumber pn ); +PlayerNumber GetNextEnabledPlayer( PlayerNumber pn ); const PlayerNumber OPPOSITE_PLAYER[NUM_PLAYERS] = { PLAYER_2, PLAYER_1 };