LightsManager.h
Go to the documentation of this file.00001
00002
00003
#ifndef LightsManager_H
00004
#define LightsManager_H
00005
00006
#include "PlayerNumber.h"
00007
#include "GameInput.h"
00008
#include "EnumHelper.h"
00009
00010 const float LIGHTS_FALLOFF_SECONDS = 0.1f;
00011
00012 enum CabinetLight
00013 {
00014
LIGHT_MARQUEE_UP_LEFT,
00015
LIGHT_MARQUEE_UP_RIGHT,
00016
LIGHT_MARQUEE_LR_LEFT,
00017
LIGHT_MARQUEE_LR_RIGHT,
00018
LIGHT_BUTTONS_LEFT,
00019
LIGHT_BUTTONS_RIGHT,
00020
LIGHT_BASS_LEFT,
00021
LIGHT_BASS_RIGHT,
00022
NUM_CABINET_LIGHTS
00023 };
00024 #define FOREACH_CabinetLight( i ) FOREACH_ENUM( CabinetLight, NUM_CABINET_LIGHTS, i )
00025
const CString&
CabinetLightToString( CabinetLight cl );
00026
00027 enum LightsMode
00028 {
00029
LIGHTSMODE_ATTRACT,
00030
LIGHTSMODE_JOINING,
00031
LIGHTSMODE_MENU,
00032
LIGHTSMODE_DEMONSTRATION,
00033
LIGHTSMODE_GAMEPLAY,
00034
LIGHTSMODE_STAGE,
00035
LIGHTSMODE_ALL_CLEARED,
00036
LIGHTSMODE_TEST,
00037
NUM_LIGHTS_MODES
00038 };
00039
const CString&
LightsModeToString( LightsMode lm );
00040
00041 struct LightsState
00042 {
00043 bool m_bCabinetLights[
NUM_CABINET_LIGHTS];
00044 bool m_bGameButtonLights[
MAX_GAME_CONTROLLERS][
MAX_GAME_BUTTONS];
00045 };
00046
00047
class LightsDriver;
00048
00049 class LightsManager
00050 {
00051
public:
00052
LightsManager(
CString sDriver);
00053
~LightsManager();
00054
00055
void Update(
float fDeltaTime );
00056 bool IsEnabled()
const {
return m_pDriver != NULL; }
00057
00058
void BlinkCabinetLight( CabinetLight cl );
00059
void BlinkGameButton(
GameInput gi );
00060
00061
void SetLightsMode( LightsMode lm );
00062
LightsMode GetLightsMode();
00063
00064
private:
00065 float m_fSecsLeftInCabinetLightBlink[
NUM_CABINET_LIGHTS];
00066 float m_fSecsLeftInGameButtonBlink[
MAX_GAME_CONTROLLERS][
MAX_GAME_BUTTONS];
00067
00068 LightsDriver*
m_pDriver;
00069 LightsMode m_LightsMode;
00070 LightsState m_LightsState;
00071 };
00072
00073
00074 extern LightsManager*
LIGHTSMAN;
00075
00076
#endif
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
Generated on Thu Jan 27 20:57:22 2005 for StepMania by
1.3.7