clean up CPU player naming

add default CPU player modifiers
This commit is contained in:
Chris Danford
2004-05-16 02:51:55 +00:00
parent 79e5c41476
commit ee4427a54b
8 changed files with 47 additions and 20 deletions
+1
View File
@@ -18,6 +18,7 @@ FirstRunInitialScreen=ScreenCompany
InitialScreen=ScreenCompany
WindowTitle=StepMania
DefaultModifiers=
DefaultCpuModifiers=
JoinPauseSeconds=0.8
DifficultiesToShow=beginner,easy,medium,hard,challenge
+27 -6
View File
@@ -42,6 +42,7 @@
#include <ctime>
#define DEFAULT_MODIFIERS THEME->GetMetric( "Common","DefaultModifiers" )
#define DEFAULT_CPU_MODIFIERS THEME->GetMetric( "Common","DefaultCpuModifiers" )
#define DIFFICULTIES_TO_SHOW THEME->GetMetric( "Common","DifficultiesToShow" )
GameState* GAMESTATE = NULL; // global and accessable from anywhere in our program
@@ -168,7 +169,7 @@ void GameState::Reset()
}
m_SongOptions.Init();
for( p=0; p<NUM_PLAYERS; p++ )
FOREACH_PlayerNumber(p)
{
// I can't think of a good reason to have both game-specific
// default mods and theme specific default mods. We should choose
@@ -177,11 +178,11 @@ void GameState::Reset()
// The theme setting is for eg. BM being reverse by default. (This
// could be done in the title menu ModeChoice, but then it wouldn't
// affect demo, and other non-gameplay things ...) -glenn
ApplyModifiers( (PlayerNumber)p, DEFAULT_MODIFIERS );
ApplyModifiers( (PlayerNumber)p, PREFSMAN->m_sDefaultModifiers );
ApplyModifiers( p, DEFAULT_MODIFIERS );
ApplyModifiers( p, PREFSMAN->m_sDefaultModifiers );
}
for( p=0; p<NUM_PLAYERS; p++ )
FOREACH_PlayerNumber(p)
{
if( PREFSMAN->m_ShowDancingCharacters == PrefsManager::CO_RANDOM)
m_pCurCharacters[p] = GetRandomCharacter();
@@ -190,7 +191,7 @@ void GameState::Reset()
ASSERT( m_pCurCharacters[p] );
}
for( p=0; p<NUM_PLAYERS; p++ )
FOREACH_PlayerNumber(p)
{
m_fSuperMeterGrowthScale[p] = 1;
m_iCpuSkill[p] = 5;
@@ -275,7 +276,10 @@ void GameState::PlayersFinalized()
m_pCurSong = pProfile->m_pLastSong;
}
FOREACH_CpuPlayer( pn )
{
ApplyModifiers( pn, DEFAULT_CPU_MODIFIERS );
}
}
/* This data is added to each player profile, and to the machine profile per-player. */
@@ -693,6 +697,23 @@ int GameState::GetCourseSongIndex() const
return iSongIndex;
}
CString GameState::GetPlayerDisplayName( PlayerNumber pn ) const
{
ASSERT( IsPlayerEnabled(pn) );
const CString defaultnames[NUM_PLAYERS] = { "PLAYER 1", "PLAYER 2" };
if( IsHumanPlayer(pn) )
{
if( !PROFILEMAN->GetPlayerName(pn).empty() )
return PROFILEMAN->GetPlayerName(pn);
else
return defaultnames[pn];
}
else
{
return "CPU";
}
}
bool GameState::PlayersCanJoin() const
{
return GetNumSidesJoined() == 0 || this->m_CurStyle == STYLE_INVALID; // selecting a style finalizes the players
+1
View File
@@ -131,6 +131,7 @@ public:
CString GetStageText() const;
void GetAllStageTexts( CStringArray &out ) const;
int GetCourseSongIndex() const;
CString GetPlayerDisplayName( PlayerNumber pn ) const;
//
+2 -3
View File
@@ -166,12 +166,11 @@ void PlayerMinus::Load( PlayerNumber pn, const NoteData* pNoteData, LifeMeter* p
{
case 0:
case 3:
// do shuffle
NoteDataUtil::Turn( *this, STEPS_TYPE_DANCE_SINGLE, NoteDataUtil::mirror);
NoteDataUtil::Turn( *this, STEPS_TYPE_DANCE_SINGLE, NoteDataUtil::left);
break;
case 1:
case 2:
// don't shuffle
NoteDataUtil::Turn( *this, STEPS_TYPE_DANCE_SINGLE, NoteDataUtil::right);
break;
default:
ASSERT(0);
+10
View File
@@ -54,3 +54,13 @@ PlayerNumber GetNextEnabledPlayer( PlayerNumber pn )
return PLAYER_INVALID;
}
PlayerNumber GetNextCpuPlayer( PlayerNumber pn )
{
for( PlayerNumber p=(PlayerNumber)(pn+1); p<NUM_PLAYERS; ((int&)p)++ )
{
if( GAMESTATE->IsCpuPlayer(p) )
return p;
}
return PLAYER_INVALID;
}
+2
View File
@@ -29,9 +29,11 @@ enum PlayerNumber {
#define FOREACH_PlayerNumber( pn ) FOREACH_ENUM( PlayerNumber, NUM_PLAYERS, pn )
#define FOREACH_HumanPlayer( pn ) for( PlayerNumber pn=GetNextHumanPlayer((PlayerNumber)-1); pn!=PLAYER_INVALID; pn=GetNextHumanPlayer(pn) )
#define FOREACH_EnabledPlayer( pn ) for( PlayerNumber pn=GetNextEnabledPlayer((PlayerNumber)-1); pn!=PLAYER_INVALID; pn=GetNextEnabledPlayer(pn) )
#define FOREACH_CpuPlayer( pn ) for( PlayerNumber pn=GetNextEnabledPlayer((PlayerNumber)-1); pn!=PLAYER_INVALID; pn=GetNextEnabledPlayer(pn) )
PlayerNumber GetNextHumanPlayer( PlayerNumber pn );
PlayerNumber GetNextEnabledPlayer( PlayerNumber pn );
PlayerNumber GetNextCpuPlayer( PlayerNumber pn );
const PlayerNumber OPPOSITE_PLAYER[NUM_PLAYERS] = { PLAYER_2, PLAYER_1 };
+1 -5
View File
@@ -224,11 +224,7 @@ const Profile* ProfileManager::GetProfile( PlayerNumber pn ) const
CString ProfileManager::GetPlayerName( PlayerNumber pn ) const
{
const Profile *prof = GetProfile( pn );
if( prof )
return prof->GetDisplayName();
const char *names[NUM_PLAYERS] = { "PLAYER 1", "PLAYER 2" };
return names[pn];
return prof ? prof->GetDisplayName() : "";
}
+3 -6
View File
@@ -529,7 +529,7 @@ void ScreenGameplay::Init()
m_sprCourseSongNumber.SetName( "CourseSongNumber" );
SET_XY( m_sprCourseSongNumber );
for( p=0; p<NUM_PLAYERS; p++ )
FOREACH_EnabledPlayer(p)
{
m_textCourseSongNumber[p].LoadFromNumbers( THEME->GetPathToN("ScreenGameplay song num") );
m_textCourseSongNumber[p].SetShadowLength( 0 );
@@ -542,17 +542,14 @@ void ScreenGameplay::Init()
{
m_textPlayerName[p].LoadFromFont( THEME->GetPathToF("ScreenGameplay player") );
m_textPlayerName[p].SetName( ssprintf("PlayerNameP%i",p+1) );
m_textPlayerName[p].SetText( PROFILEMAN->GetPlayerName((PlayerNumber)p) );
m_textPlayerName[p].SetText( GAMESTATE->GetPlayerDisplayName((PlayerNumber)p) );
SET_XY( m_textPlayerName[p] );
this->AddChild( &m_textPlayerName[p] );
}
}
for( p=0; p<NUM_PLAYERS; p++ )
FOREACH_EnabledPlayer(p)
{
if( !GAMESTATE->IsPlayerEnabled(p) )
continue; // skip
m_textStepsDescription[p].LoadFromFont( THEME->GetPathToF("ScreenGameplay StepsDescription") );
m_textStepsDescription[p].SetName( ssprintf("StepsDescriptionP%i",p+1) );
SET_XY( m_textStepsDescription[p] );