- don't blink start when joined; blink it when joinable, and make it

solid when joined (otherwise it's just always blinking at different
   rates)
 - fix glitches related to start button light being moved to m_bGameButtonLights
 - lighting on join in JOINING doesn't make sense anymore, since we move on
   immediately
This commit is contained in:
Glenn Maynard
2007-06-18 16:00:48 +00:00
parent cadacd8bcc
commit 3460fa0874
+17 -41
View File
@@ -206,23 +206,6 @@ void LightsManager::Update( float fDeltaTime )
switch( m_LightsMode ) switch( m_LightsMode )
{ {
case LIGHTSMODE_JOINING:
{
// int iBeat = (int)(GAMESTATE->m_fLightSongBeat);
// bool bBlinkOn = (iBeat%2)==0;
FOREACH_PlayerNumber( pn )
{
if( GAMESTATE->m_bSideIsJoined[pn] )
{
m_LightsState.m_bCabinetLights[LIGHT_MARQUEE_UP_LEFT+pn] = true;
m_LightsState.m_bCabinetLights[LIGHT_MARQUEE_LR_LEFT+pn] = true;
m_LightsState.m_bCabinetLights[LIGHT_BASS_LEFT+pn] = true;
m_LightsState.m_bGameButtonLights[pn][GAME_BUTTON_START] = true;
}
}
}
break;
case LIGHTSMODE_ATTRACT: case LIGHTSMODE_ATTRACT:
{ {
int iSec = (int)RageTimer::GetTimeSinceStartFast(); int iSec = (int)RageTimer::GetTimeSinceStartFast();
@@ -242,6 +225,7 @@ void LightsManager::Update( float fDeltaTime )
} }
break; break;
case LIGHTSMODE_MENU: case LIGHTSMODE_MENU:
case LIGHTSMODE_JOINING:
{ {
FOREACH_CabinetLight( cl ) FOREACH_CabinetLight( cl )
m_LightsState.m_bCabinetLights[cl] = false; m_LightsState.m_bCabinetLights[cl] = false;
@@ -258,14 +242,12 @@ void LightsManager::Update( float fDeltaTime )
default: ASSERT(0); default: ASSERT(0);
} }
/* Flash the button lights for active players. */ /* Light the button lights for active players. */
bool bBlinkOn = (iBeat%2)==0;
FOREACH_PlayerNumber( pn ) FOREACH_PlayerNumber( pn )
{ {
if( GAMESTATE->m_bSideIsJoined[pn] ) if( GAMESTATE->m_bSideIsJoined[pn] )
{ {
m_LightsState.m_bGameButtonLights[pn][GAME_BUTTON_START] = bBlinkOn; m_LightsState.m_bGameButtonLights[pn][GAME_BUTTON_START] = true;
} }
} }
} }
@@ -306,31 +288,13 @@ void LightsManager::Update( float fDeltaTime )
} }
// If not joined, has enough credits, and not too late to join, then
// blink the menu buttons rapidly so they'll press Start
{
int iBeat = (int)(GAMESTATE->m_fLightSongBeat*4);
bool bBlinkOn = (iBeat%2)==0;
FOREACH_PlayerNumber( pn )
{
if( !GAMESTATE->m_bSideIsJoined[pn] && GAMESTATE->PlayersCanJoin() && GAMESTATE->EnoughCreditsToJoin() )
m_LightsState.m_bGameButtonLights[pn][GAME_BUTTON_START] = bBlinkOn;
}
}
// //
// Update game controller lights // Update game controller lights
// //
// FIXME: Works only with Game==dance
// FIXME: lights pads for players who aren't playing
switch( m_LightsMode ) switch( m_LightsMode )
{ {
case LIGHTSMODE_ATTRACT: case LIGHTSMODE_ATTRACT:
case LIGHTSMODE_DEMONSTRATION: case LIGHTSMODE_DEMONSTRATION:
{
ZERO( m_LightsState.m_bGameButtonLights );
}
break; break;
case LIGHTSMODE_ALL_CLEARED: case LIGHTSMODE_ALL_CLEARED:
case LIGHTSMODE_STAGE: case LIGHTSMODE_STAGE:
@@ -364,11 +328,11 @@ void LightsManager::Update( float fDeltaTime )
else else
{ {
// //
// Blink on button pressess. // Blink on button presses.
// //
FOREACH_GameController( gc ) FOREACH_GameController( gc )
{ {
FOREACH_GameButton( gb ) FOREACH_GameButton_Custom( gb )
{ {
bool bOn = INPUTMAPPER->IsBeingPressed( GameInput(gc,gb) ); bool bOn = INPUTMAPPER->IsBeingPressed( GameInput(gc,gb) );
m_LightsState.m_bGameButtonLights[gc][gb] = bOn; m_LightsState.m_bGameButtonLights[gc][gb] = bOn;
@@ -411,6 +375,18 @@ void LightsManager::Update( float fDeltaTime )
ASSERT(0); ASSERT(0);
} }
// If not joined, has enough credits, and not too late to join, then
// blink the menu buttons rapidly so they'll press Start
{
int iBeat = (int)(GAMESTATE->m_fLightSongBeat*4);
bool bBlinkOn = (iBeat%2)==0;
FOREACH_PlayerNumber( pn )
{
if( !GAMESTATE->m_bSideIsJoined[pn] && GAMESTATE->PlayersCanJoin() && GAMESTATE->EnoughCreditsToJoin() )
m_LightsState.m_bGameButtonLights[pn][GAME_BUTTON_START] = bBlinkOn;
}
}
// apply new light values we set above // apply new light values we set above
FOREACH( LightsDriver*, m_vpDrivers, iter ) FOREACH( LightsDriver*, m_vpDrivers, iter )
(*iter)->Set( &m_LightsState ); (*iter)->Set( &m_LightsState );