raze/source/core/inputstate.h

65 lines
1,005 B
C
Raw Normal View History

#pragma once
#include <stdint.h>
#include "compat.h"
#include "printf.h"
#include "c_dispatch.h"
#include "tarray.h"
2019-10-28 00:12:31 +00:00
#include "scancodes.h"
2019-11-03 19:24:50 +00:00
#include "c_bind.h"
#include "c_buttons.h"
#include "d_event.h"
#include "m_joy.h"
#include "gamecvars.h"
2019-11-04 16:58:18 +00:00
struct ControlInfo
{
float dx;
float dy;
float dz;
float dyaw;
float dpitch;
float droll;
float mousex;
float mousey;
};
class InputState
{
uint8_t KeyStatus[NUM_KEYS];
bool AnyKeyStatus;
vec2f_t g_mousePos;
public:
2019-10-28 00:12:31 +00:00
bool ShiftPressed()
{
return KeyStatus[sc_LeftShift] || KeyStatus[sc_RightShift];
}
void AddEvent(const event_t* ev);
void MouseAddToPos(float x, float y)
{
g_mousePos.x += x;
g_mousePos.y += y;
}
void GetMouseDelta(ControlInfo* info);
void ClearAllInput();
bool CheckAllInput()
{
bool res = AnyKeyStatus;
AnyKeyStatus = false;
return res;
}
};
extern InputState inputState;
void CONTROL_GetInput(ControlInfo* info);
int32_t handleevents(void);