- removed 386 CR characters - removed 4 trailing whitespaces - replaced 189 tabs with spaceslegacy
@@ -215,7 +215,7 @@ int main(int argc, char **argv) | |||
new DebugFps(5, 5); | |||
new Cube(); | |||
controller = new Controller(KEY_MAX, AXIS_MAX); | |||
controller = new Controller(KEY_MAX, AXIS_MAX); | |||
controller->GetKey(KEY_MANUAL_ROTATION).Bind("Keyboard", "Space"); | |||
controller->GetKey(KEY_DRAG_MESH).Bind("Mouse", "ButtonLeft"); | |||
controller->GetAxis(AXIS_DRAG_PITCH).Bind("Mouse", "Y"); | |||
@@ -175,7 +175,7 @@ public: | |||
rcmplx worldmouse = m_center + rcmplx(ScreenToWorldOffset(m_mousepos)); | |||
uint32_t buttons = 0; | |||
uint32_t buttons = 0; | |||
//uint32_t buttons = Input::GetMouseButtons(); | |||
#if !defined __CELLOS_LV2__ && !defined _XBOX | |||
if (buttons & 0x2) | |||
@@ -24,19 +24,19 @@ namespace lol | |||
void KeyBinding::Bind(const char* device_name, const char* key_name) | |||
{ | |||
m_device = InputDevice::Get(device_name); | |||
if (!m_device) | |||
{ | |||
Log::Warn("Trying to bind controller to device %s which doesn't exist", device_name); | |||
return; | |||
} | |||
m_keyindex = m_device->GetKeyIndex(key_name); | |||
if (m_keyindex < 0) | |||
{ | |||
Log::Warn("Trying to bind controller to key %s.%s which doesn't exist", device_name, key_name); | |||
} | |||
m_device = InputDevice::Get(device_name); | |||
if (!m_device) | |||
{ | |||
Log::Warn("Trying to bind controller to device %s which doesn't exist", device_name); | |||
return; | |||
} | |||
m_keyindex = m_device->GetKeyIndex(key_name); | |||
if (m_keyindex < 0) | |||
{ | |||
Log::Warn("Trying to bind controller to key %s.%s which doesn't exist", device_name, key_name); | |||
} | |||
} | |||
/////////////////////////////////////////////////////////////////////////////// | |||
@@ -44,19 +44,19 @@ void KeyBinding::Bind(const char* device_name, const char* key_name) | |||
void AxisBinding::Bind(const char* device_name, const char* axis_name) | |||
{ | |||
m_device = InputDevice::Get(device_name); | |||
if (!m_device) | |||
{ | |||
Log::Warn("Trying to bind controller to device %s which doesn't exist", device_name); | |||
return; | |||
} | |||
m_axisindex = m_device->GetAxisIndex(axis_name); | |||
if (m_axisindex < 0) | |||
{ | |||
Log::Warn("Trying to bind controller to axis %s.%s which doesn't exist", device_name, axis_name); | |||
} | |||
m_device = InputDevice::Get(device_name); | |||
if (!m_device) | |||
{ | |||
Log::Warn("Trying to bind controller to device %s which doesn't exist", device_name); | |||
return; | |||
} | |||
m_axisindex = m_device->GetAxisIndex(axis_name); | |||
if (m_axisindex < 0) | |||
{ | |||
Log::Warn("Trying to bind controller to axis %s.%s which doesn't exist", device_name, axis_name); | |||
} | |||
} | |||
@@ -67,79 +67,79 @@ Array<Controller*> Controller::controllers; | |||
Controller::Controller(int nb_keys, int nb_axis) | |||
{ | |||
m_gamegroup = GAMEGROUP_BEFORE; | |||
m_nb_keys = nb_keys; | |||
m_nb_axis = nb_axis; | |||
m_keys = new KeyBinding[m_nb_keys]; | |||
m_axis = new AxisBinding[m_nb_axis]; | |||
m_activate_nextframe = false; | |||
m_deactivate_nextframe = false; | |||
m_active = false; | |||
controllers.Push(this); | |||
m_gamegroup = GAMEGROUP_BEFORE; | |||
m_nb_keys = nb_keys; | |||
m_nb_axis = nb_axis; | |||
m_keys = new KeyBinding[m_nb_keys]; | |||
m_axis = new AxisBinding[m_nb_axis]; | |||
m_activate_nextframe = false; | |||
m_deactivate_nextframe = false; | |||
m_active = false; | |||
controllers.Push(this); | |||
} | |||
Controller::~Controller() | |||
{ | |||
for (int i = 0; i < controllers.Count(); ++i) | |||
{ | |||
if (controllers[i] == this) | |||
{ | |||
controllers.Remove(i); | |||
break; | |||
} | |||
} | |||
for (int i = 0; i < controllers.Count(); ++i) | |||
{ | |||
if (controllers[i] == this) | |||
{ | |||
controllers.Remove(i); | |||
break; | |||
} | |||
} | |||
} | |||
void Controller::TickGame(float seconds) | |||
{ | |||
Entity::TickGame(seconds); | |||
Entity::TickGame(seconds); | |||
for (int i = 0; i < m_nb_keys; ++i) | |||
{ | |||
m_keys[i].Update(); | |||
} | |||
for (int i = 0; i < m_nb_keys; ++i) | |||
{ | |||
m_keys[i].Update(); | |||
} | |||
for (int i = 0; i < m_nb_axis; ++i) | |||
{ | |||
m_axis[i].Update(); | |||
} | |||
for (int i = 0; i < m_nb_axis; ++i) | |||
{ | |||
m_axis[i].Update(); | |||
} | |||
if (m_activate_nextframe) | |||
m_active = true; | |||
if (m_activate_nextframe) | |||
m_active = true; | |||
if (m_deactivate_nextframe) | |||
m_active = false; | |||
if (m_deactivate_nextframe) | |||
m_active = false; | |||
m_activate_nextframe = false; | |||
m_deactivate_nextframe = false; | |||
m_activate_nextframe = false; | |||
m_deactivate_nextframe = false; | |||
} | |||
void Controller::Activate() | |||
{ | |||
m_activate_nextframe = true; | |||
m_deactivate_nextframe = false; | |||
m_activate_nextframe = true; | |||
m_deactivate_nextframe = false; | |||
} | |||
void Controller::Deactivate() | |||
{ | |||
m_deactivate_nextframe = true; | |||
m_activate_nextframe = false; | |||
m_deactivate_nextframe = true; | |||
m_activate_nextframe = false; | |||
} | |||
Array<Controller*> Controller::DeactivateAll() | |||
{ | |||
Array<Controller*> result; | |||
for (int i = 0; i < controllers.Count(); ++i) | |||
{ | |||
if (controllers[i]->m_active || controllers[i]->m_activate_nextframe) | |||
{ | |||
result.Push(controllers[i]); | |||
controllers[i]->Deactivate(); | |||
} | |||
} | |||
return result; | |||
Array<Controller*> result; | |||
for (int i = 0; i < controllers.Count(); ++i) | |||
{ | |||
if (controllers[i]->m_active || controllers[i]->m_activate_nextframe) | |||
{ | |||
result.Push(controllers[i]); | |||
controllers[i]->Deactivate(); | |||
} | |||
} | |||
return result; | |||
} | |||
} /* namespace lol */ | |||
@@ -21,77 +21,77 @@ namespace lol | |||
class KeyBinding | |||
{ | |||
public: | |||
KeyBinding() : m_current(false), m_previous(false), m_device(nullptr) {} | |||
KeyBinding() : m_current(false), m_previous(false), m_device(nullptr) {} | |||
bool IsDown() const { return m_current; } | |||
bool IsUp() const { return !m_current; } | |||
bool IsPressed() const { return m_current && !m_previous; } | |||
bool IsReleased() const { return !m_current && m_previous; } | |||
bool IsDown() const { return m_current; } | |||
bool IsUp() const { return !m_current; } | |||
bool IsPressed() const { return m_current && !m_previous; } | |||
bool IsReleased() const { return !m_current && m_previous; } | |||
void Bind(const char* device_name, const char* key_name); | |||
void Bind(const char* device_name, const char* key_name); | |||
protected: | |||
void Update() { m_previous = m_current; m_current = m_device ? m_device->GetKey(m_keyindex) : false; } | |||
void Update() { m_previous = m_current; m_current = m_device ? m_device->GetKey(m_keyindex) : false; } | |||
const InputDevice* m_device; | |||
int m_keyindex; | |||
bool m_current; | |||
bool m_previous; | |||
const InputDevice* m_device; | |||
int m_keyindex; | |||
bool m_current; | |||
bool m_previous; | |||
friend class Controller; | |||
friend class Controller; | |||
}; | |||
class AxisBinding | |||
{ | |||
public: | |||
AxisBinding() : m_current(0.0f), m_previous(0.0f), m_device(nullptr) {} | |||
AxisBinding() : m_current(0.0f), m_previous(0.0f), m_device(nullptr) {} | |||
float GetValue() const { return m_current; } | |||
float GetDelta() const { return m_current - m_previous; } | |||
float GetValue() const { return m_current; } | |||
float GetDelta() const { return m_current - m_previous; } | |||
void Bind(const char* device_name, const char* axis_name); | |||
void Bind(const char* device_name, const char* axis_name); | |||
protected: | |||
void Update() { m_previous = m_current; m_current = m_device ? m_device->GetAxis(m_axisindex) : 0.0f; } | |||
void Update() { m_previous = m_current; m_current = m_device ? m_device->GetAxis(m_axisindex) : 0.0f; } | |||
const InputDevice* m_device; | |||
int m_axisindex; | |||
float m_current; | |||
float m_previous; | |||
const InputDevice* m_device; | |||
int m_axisindex; | |||
float m_current; | |||
float m_previous; | |||
friend class Controller; | |||
friend class Controller; | |||
}; | |||
class Controller : Entity | |||
{ | |||
public: | |||
Controller(int nb_keys, int nb_axis); | |||
~Controller(); | |||
Controller(int nb_keys, int nb_axis); | |||
~Controller(); | |||
virtual void TickGame(float seconds); | |||
virtual void TickGame(float seconds); | |||
/** Activate the controller on next frame */ | |||
void Activate(); | |||
/** Deactivate the controller on next frame */ | |||
void Deactivate(); | |||
/** Deactivate every active controller on next frame and return an array of deactivated (previously active) controllers */ | |||
static Array<Controller*> DeactivateAll(); | |||
/** Activate the controller on next frame */ | |||
void Activate(); | |||
/** Deactivate the controller on next frame */ | |||
void Deactivate(); | |||
/** Deactivate every active controller on next frame and return an array of deactivated (previously active) controllers */ | |||
static Array<Controller*> DeactivateAll(); | |||
KeyBinding& GetKey(int index) { ASSERT(index >= 0 && index < m_nb_keys); return m_keys[index]; } | |||
AxisBinding& GetAxis(int index) { ASSERT(index >= 0 && index < m_nb_axis); return m_axis[index]; } | |||
KeyBinding& GetKey(int index) { ASSERT(index >= 0 && index < m_nb_keys); return m_keys[index]; } | |||
AxisBinding& GetAxis(int index) { ASSERT(index >= 0 && index < m_nb_axis); return m_axis[index]; } | |||
protected: | |||
KeyBinding* m_keys; | |||
AxisBinding* m_axis; | |||
int m_nb_keys; | |||
int m_nb_axis; | |||
KeyBinding* m_keys; | |||
AxisBinding* m_axis; | |||
int m_nb_keys; | |||
int m_nb_axis; | |||
private: | |||
static Array<Controller*> controllers; | |||
bool m_activate_nextframe; | |||
bool m_deactivate_nextframe; | |||
bool m_active; | |||
static Array<Controller*> controllers; | |||
bool m_activate_nextframe; | |||
bool m_deactivate_nextframe; | |||
bool m_active; | |||
}; | |||
} /* namespace lol */ | |||
@@ -55,11 +55,11 @@ public: | |||
/** Get an input device by its name */ | |||
static InputDevice* Get(const char* name) { return GetDevice(name); } | |||
/** Set whether the mouse cursor should be captured. */ | |||
static void CaptureMouse(bool activated) { m_capturemouse = activated; } | |||
/** Set whether the mouse cursor should be captured. */ | |||
static void CaptureMouse(bool activated) { m_capturemouse = activated; } | |||
protected: | |||
// TODO: hide all of this in a InputDeviceData? | |||
// TODO: hide all of this in a InputDeviceData? | |||
String m_name; | |||
@@ -74,7 +74,7 @@ protected: | |||
/** cursor position */ | |||
Array<vec2, ivec2> m_cursors; | |||
static bool m_capturemouse; | |||
static bool m_capturemouse; | |||
InputDevice(const char* name) : m_name(name) | |||
{ | |||
@@ -29,12 +29,12 @@ public: | |||
void AddCursor(const char* name); | |||
void SetKey(int index, bool state) { m_keys[index] = state; } | |||
void SetAxis(int index, float value) { m_axis[index].m1 = value; } | |||
void SetCursor(int index, const vec2& position, const ivec2& pixel) { m_cursors[index].m1 = position; m_cursors[index].m2 = pixel; } | |||
void SetAxis(int index, float value) { m_axis[index].m1 = value; } | |||
void SetCursor(int index, const vec2& position, const ivec2& pixel) { m_cursors[index].m1 = position; m_cursors[index].m2 = pixel; } | |||
static bool GetMouseCapture() { return m_capturemouse; } | |||
static bool GetMouseCapture() { return m_capturemouse; } | |||
static InputDeviceInternal* CreateStandardKeyboard(); | |||
static InputDeviceInternal* CreateStandardKeyboard(); | |||
static InputDeviceInternal* CreateStandardMouse(); | |||
}; | |||
@@ -59,14 +59,14 @@ D3d9Input::D3d9Input() | |||
if (XInputGetState(i, &state) != ERROR_SUCCESS) | |||
continue; | |||
#if defined LOL_INPUT_V2 | |||
// TODO: we can put more friendly name here, such as LeftAxisX, ButtonX... | |||
InputDeviceInternal* stick = new InputDeviceInternal(String::Printf("Joystick%d", i+1).C()); | |||
for (int j = 0; j < 4; ++j) | |||
stick->AddAxis(String::Printf("Axis%d", j+1).C()); | |||
for (int j = 0; j < 16; ++j) | |||
stick->AddKey(String::Printf("Button%d", j+1).C()); | |||
m_data->m_joysticks.Push(i, stick); | |||
// TODO: we can put more friendly name here, such as LeftAxisX, ButtonX... | |||
InputDeviceInternal* stick = new InputDeviceInternal(String::Printf("Joystick%d", i+1).C()); | |||
for (int j = 0; j < 4; ++j) | |||
stick->AddAxis(String::Printf("Axis%d", j+1).C()); | |||
for (int j = 0; j < 16; ++j) | |||
stick->AddKey(String::Printf("Button%d", j+1).C()); | |||
m_data->m_joysticks.Push(i, stick); | |||
#else | |||
Stick *stick = Input::CreateStick(); | |||
stick->SetAxisCount(4); | |||
@@ -86,11 +86,11 @@ D3d9Input::~D3d9Input() | |||
while (m_data->m_joysticks.Count()) | |||
{ | |||
#if defined LOL_INPUT_V2 | |||
delete m_data->m_joysticks[0].m2; | |||
delete m_data->m_joysticks[0].m2; | |||
#else | |||
Input::DestroyStick(m_data->m_joysticks[0].m2); | |||
Input::DestroyStick(m_data->m_joysticks[0].m2); | |||
#endif // LOL_INPUT_V2 | |||
m_data->m_joysticks.Remove(0); | |||
m_data->m_joysticks.Remove(0); | |||
} | |||
#endif | |||
delete m_data; | |||
@@ -119,11 +119,11 @@ void D3d9Input::TickDraw(float seconds) | |||
for (int b = 0; b < 16; b++) | |||
#if defined LOL_INPUT_V2 | |||
m_data->m_joysticks[i].m2->SetKey(b, ((uint16_t)(state.Gamepad.wButtons) >> b) & 1); | |||
m_data->m_joysticks[i].m2->SetKey(b, ((uint16_t)(state.Gamepad.wButtons) >> b) & 1); | |||
#else | |||
m_data->m_joysticks[i].m2->SetButton(b, ((uint16_t)(state.Gamepad.wButtons) >> b) & 1); | |||
m_data->m_joysticks[i].m2->SetButton(b, ((uint16_t)(state.Gamepad.wButtons) >> b) & 1); | |||
#endif // LOL_INPUT_V2 | |||
} | |||
} | |||
#endif | |||
} | |||
@@ -67,9 +67,9 @@ SdlApp::SdlApp(char const *title, ivec2 res, float fps) : | |||
} | |||
# ifdef LOL_INPUT_V2 | |||
const SDL_VideoInfo* vidinfo = SDL_GetVideoInfo(); | |||
int screen_w = vidinfo->current_w; | |||
int screen_h = vidinfo->current_h; | |||
const SDL_VideoInfo* vidinfo = SDL_GetVideoInfo(); | |||
int screen_w = vidinfo->current_w; | |||
int screen_h = vidinfo->current_h; | |||
# endif | |||
# if defined USE_D3D9 | |||
@@ -84,7 +84,7 @@ SdlApp::SdlApp(char const *title, ivec2 res, float fps) : | |||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); | |||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); | |||
# ifdef LOL_INPUT_V2 | |||
// TODO: when implementing fullscreen, be sure to overwrite screen_w and screen_h with the value of vidinfo after the call to SDL_SetVideoMode | |||
// TODO: when implementing fullscreen, be sure to overwrite screen_w and screen_h with the value of vidinfo after the call to SDL_SetVideoMode | |||
# endif | |||
SDL_Surface *video = SDL_SetVideoMode(res.x, res.y, 0, SDL_OPENGL); | |||
# endif | |||
@@ -112,7 +112,7 @@ SdlApp::SdlApp(char const *title, ivec2 res, float fps) : | |||
# ifdef LOL_INPUT_V2 | |||
new SdlInput(video->w, video->h, screen_w, screen_h); | |||
# else | |||
new SdlInput(); | |||
new SdlInput(); | |||
# endif | |||
#endif | |||
} | |||
@@ -53,7 +53,7 @@ private: | |||
SdlInputData(int app_w, int app_h, int screen_w, int screen_h) : | |||
m_prevmouse(ivec2(0)), | |||
m_app_w((float)app_w), | |||
m_app_h((float)app_h), | |||
m_app_h((float)app_h), | |||
m_screen_w((float)screen_w), | |||
m_screen_h((float)screen_h) | |||
{ } | |||
@@ -239,7 +239,7 @@ void SdlInputData::Tick(float seconds) | |||
} | |||
# if !SDL_FORCE_POLL_JOYSTICK | |||
# ifdef LOL_INPUT_V2 | |||
# ifdef LOL_INPUT_V2 | |||
case SDL_JOYAXISMOTION: | |||
m_joysticks[event.jaxis.which].m2->SetAxis(event.jaxis.axis, (float)event.jaxis.value / 32768.f); | |||
break; | |||
@@ -248,7 +248,7 @@ void SdlInputData::Tick(float seconds) | |||
case SDL_JOYBUTTONDOWN: | |||
m_joysticks[event.jbutton.which].m2->SetKey(event.jbutton.button, event.jbutton.state); | |||
break; | |||
# else // !LOL_INPUT_V2 | |||
# else // !LOL_INPUT_V2 | |||
case SDL_JOYAXISMOTION: | |||
m_joysticks[event.jaxis.which].m2->SetAxis(event.jaxis.axis, (float)event.jaxis.value / 32768.f); | |||
break; | |||
@@ -257,7 +257,7 @@ void SdlInputData::Tick(float seconds) | |||
case SDL_JOYBUTTONDOWN: | |||
m_joysticks[event.jbutton.which].m2->SetButton(event.jbutton.button, event.jbutton.state); | |||
break; | |||
# endif // LOL_INPUT_V2 | |||
# endif // LOL_INPUT_V2 | |||
# endif | |||
} | |||
} | |||
@@ -290,7 +290,7 @@ void SdlInputData::Tick(float seconds) | |||
# else // !LOL_INPUT_V2 | |||
Input::SetMousePos(mouse); | |||
# endif // LOL_INPUT_V2 | |||
# endif // LOL_INPUT_V2 | |||
# if SDL_VERSION_ATLEAST(1,3,0) | |||
Uint8 *sdlstate = SDL_GetKeyboardState(nullptr); | |||
@@ -299,14 +299,14 @@ void SdlInputData::Tick(float seconds) | |||
# endif | |||
int keyindex = 0; | |||
# ifdef LOL_INPUT_V2 | |||
# define KEY_FUNC(name, index) m_keyboard->SetKey(keyindex++, sdlstate[index] != 0); | |||
# if !defined SDLK_WORLD_0 | |||
# define KEY_DISABLE_WORLD | |||
# ifdef LOL_INPUT_V2 | |||
# define KEY_FUNC(name, index) m_keyboard->SetKey(keyindex++, sdlstate[index] != 0); | |||
# if !defined SDLK_WORLD_0 | |||
# define KEY_DISABLE_WORLD | |||
# endif // !SDLK_WORLD_0 | |||
# include "input/keys.h" | |||
# undef KEY_FUNC | |||
# else // !LOL_INPUT_V2 | |||
# include "input/keys.h" | |||
# undef KEY_FUNC | |||
# else // !LOL_INPUT_V2 | |||
/* Send the whole keyboard state to the input system */ | |||
Array<uint8_t> &lolstate = Input::GetKeyboardState(); | |||
@@ -554,7 +554,7 @@ void SdlInputData::Tick(float seconds) | |||
lolstate[Key::Undo] = sdlstate[SDLK_UNDO]; | |||
UNUSED(seconds); | |||
# endif // LOL_INPUT_V2 | |||
# endif // LOL_INPUT_V2 | |||
#endif // USE_SDL | |||
} | |||