2019-05-31 17:02:26 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
// based on x-gtasa
|
|
|
|
|
|
|
|
enum eControllerType
|
|
|
|
{
|
|
|
|
KEYBOARD,
|
|
|
|
OPTIONAL_EXTRA,
|
|
|
|
MOUSE,
|
|
|
|
JOYSTICK,
|
|
|
|
};
|
|
|
|
|
2019-06-02 03:00:38 +00:00
|
|
|
class CMouseControllerState;
|
|
|
|
|
2019-05-31 17:02:26 +00:00
|
|
|
class CControllerConfigManager
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
struct tControllerConfigBind
|
|
|
|
{
|
|
|
|
RsKeyCodes m_Key;
|
|
|
|
Int32 m_ContSetOrder;
|
|
|
|
};
|
|
|
|
|
|
|
|
Bool field_0;
|
|
|
|
char _pad0[3];
|
|
|
|
DIJOYSTATE2 m_OldState;
|
|
|
|
DIJOYSTATE2 m_NewState;
|
|
|
|
WChar m_aActionNames[41][40];
|
|
|
|
Bool m_aButtonStates[17];
|
|
|
|
char _pad1[3];
|
|
|
|
tControllerConfigBind m_aSettings[41][4];
|
|
|
|
UInt8 m_aSimCheckers[4][4];
|
|
|
|
Bool m_bMouseAssociated;
|
|
|
|
char _pad2[3];
|
|
|
|
|
|
|
|
void UpdateJoyButtonState(int padnumber);
|
|
|
|
void UpdateJoyInConfigMenus_ButtonDown(int button, int padnumber);
|
|
|
|
void AffectControllerStateOn_ButtonDown(int button, eControllerType type);
|
|
|
|
void UpdateJoyInConfigMenus_ButtonUp(int button, int padnumber);
|
|
|
|
void AffectControllerStateOn_ButtonUp(int button, int padnumber);
|
|
|
|
|
2019-06-02 03:00:38 +00:00
|
|
|
Int32 GetJoyButtonJustDown();
|
|
|
|
void LoadSettings(Int32 file);
|
|
|
|
void MakeControllerActionsBlank();
|
|
|
|
void InitDefaultControlConfiguration();
|
|
|
|
void InitDefaultControlConfigMouse(CMouseControllerState const &mousestate);
|
2019-06-05 19:18:06 +00:00
|
|
|
void InitDefaultControlConfigJoyPad(unsigned int buttons);
|
2019-06-13 00:35:26 +00:00
|
|
|
void ClearSimButtonPressCheckers();
|
|
|
|
void AffectPadFromKeyBoard();
|
|
|
|
void AffectPadFromMouse();
|
2019-06-02 03:00:38 +00:00
|
|
|
|
2019-05-31 17:02:26 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
VALIDATE_SIZE(CControllerConfigManager, 0x143C);
|
|
|
|
|
|
|
|
extern CControllerConfigManager &ControlsManager;
|