PlayerNumber is a simple, regular data structure, and is depended on
by lower level things (eg. InputMapper). However, concepts like "joined players" and "human players" is a high-level, GAMESTATE concept, and engine stuff shouldn't depend on that. Move the GameState-depending stuff into GameState. Move IsAnyPlayerUsingMemoryCard as well (and rename to HumanPlayer), to fix MemoryCardManager dep.
This commit is contained in:
@@ -1787,6 +1787,48 @@ Profile* GameState::GetEditLocalProfile()
|
||||
}
|
||||
|
||||
|
||||
PlayerNumber GetNextHumanPlayer( PlayerNumber pn )
|
||||
{
|
||||
for( enum_add(pn, 1); pn < NUM_PLAYERS; enum_add(pn, 1) )
|
||||
if( GAMESTATE->IsHumanPlayer(pn) )
|
||||
return pn;
|
||||
return PLAYER_INVALID;
|
||||
}
|
||||
|
||||
PlayerNumber GetNextEnabledPlayer( PlayerNumber pn )
|
||||
{
|
||||
for( enum_add(pn, 1); pn < NUM_PLAYERS; enum_add(pn, 1) )
|
||||
if( GAMESTATE->IsPlayerEnabled(pn) )
|
||||
return pn;
|
||||
return PLAYER_INVALID;
|
||||
}
|
||||
|
||||
PlayerNumber GetNextCpuPlayer( PlayerNumber pn )
|
||||
{
|
||||
for( enum_add(pn, 1); pn < NUM_PLAYERS; enum_add(pn, 1) )
|
||||
if( GAMESTATE->IsCpuPlayer(pn) )
|
||||
return pn;
|
||||
return PLAYER_INVALID;
|
||||
}
|
||||
|
||||
PlayerNumber GetNextPotentialCpuPlayer( PlayerNumber pn )
|
||||
{
|
||||
for( enum_add(pn, 1); pn < NUM_PLAYERS; enum_add(pn, 1) )
|
||||
if( !GAMESTATE->IsHumanPlayer(pn) )
|
||||
return pn;
|
||||
return PLAYER_INVALID;
|
||||
}
|
||||
|
||||
MultiPlayer GetNextEnabledMultiPlayer( MultiPlayer mp )
|
||||
{
|
||||
for( enum_add(mp, 1); mp < NUM_MultiPlayer; enum_add(mp, 1) )
|
||||
if( GAMESTATE->IsMultiPlayerEnabled(mp) )
|
||||
return mp;
|
||||
return MultiPlayer_Invalid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// lua start
|
||||
#include "LuaBinding.h"
|
||||
#include "Game.h"
|
||||
@@ -2024,6 +2066,17 @@ public:
|
||||
pStyle->PushSelf( L );
|
||||
return 1;
|
||||
}
|
||||
static int IsAnyHumanPlayerUsingMemoryCard( T* p, lua_State *L )
|
||||
{
|
||||
bool bUsingMemoryCard = false;
|
||||
FOREACH_HumanPlayer( pn )
|
||||
{
|
||||
if( MEMCARDMAN->GetCardState(pn) == MemoryCardState_Ready )
|
||||
bUsingMemoryCard = true;
|
||||
}
|
||||
lua_pushboolean(L, bUsingMemoryCard );
|
||||
return 1;
|
||||
}
|
||||
|
||||
LunaGameState()
|
||||
{
|
||||
@@ -2096,6 +2149,7 @@ public:
|
||||
ADD_METHOD( GetHumanPlayers );
|
||||
ADD_METHOD( SetSongOptions );
|
||||
ADD_METHOD( GetCurrentStyle );
|
||||
ADD_METHOD( IsAnyHumanPlayerUsingMemoryCard );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user