diff --git a/src/3ds/Window_3DS.c b/src/3ds/Window_3DS.c index 75d2e9cfc..57ad19fb7 100644 --- a/src/3ds/Window_3DS.c +++ b/src/3ds/Window_3DS.c @@ -128,6 +128,27 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_3ds[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + static Result irrst_result; void Gamepads_Init(void) { @@ -167,7 +188,7 @@ static void ProcessCircleInput(int port, int axis, circlePosition* pos, float de void Gamepads_Process(float delta) { u32 mods = hidKeysDown() | hidKeysHeld(); - int port = Gamepad_Connect(0x3D5, PadBind_Defaults); + int port = Gamepad_Connect(0x3D5, defaults_3ds); HandleButtons(port, mods); circlePosition hid_pos; diff --git a/src/Window_N64.c b/src/Window_N64.c index f2fd20823..0f0b21e1e 100644 --- a/src/Window_N64.c +++ b/src/Window_N64.c @@ -100,24 +100,24 @@ static void ProcessMouse(joypad_inputs_t* inputs, float delta) { /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ -static const BindMapping default_n64[BIND_COUNT] = { - [BIND_FORWARD] = { CCPAD_CUP, 0 }, - [BIND_BACK] = { CCPAD_CDOWN, 0 }, - [BIND_LEFT] = { CCPAD_CLEFT, 0 }, - [BIND_RIGHT] = { CCPAD_CRIGHT, 0 }, +static const BindMapping defaults_n64[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_CUP }, + [BIND_BACK] = { CCPAD_CDOWN }, + [BIND_LEFT] = { CCPAD_CLEFT }, + [BIND_RIGHT] = { CCPAD_CRIGHT }, - [BIND_FLY_UP] = { CCPAD_UP, 0 }, - [BIND_FLY_DOWN]= { CCPAD_DOWN, 0 }, - [BIND_SPEED] = { CCPAD_LEFT, 0 }, - [BIND_FLY] = { CCPAD_RIGHT, 0 }, + [BIND_FLY_UP] = { CCPAD_UP }, + [BIND_FLY_DOWN]= { CCPAD_DOWN }, + [BIND_SPEED] = { CCPAD_LEFT }, + [BIND_FLY] = { CCPAD_RIGHT }, - [BIND_JUMP] = { CCPAD_1, 0 }, - [BIND_INVENTORY] = { CCPAD_2, 0 }, - [BIND_PLACE_BLOCK] = { CCPAD_5, 0 }, - [BIND_HOTBAR_RIGHT] = { CCPAD_L, 0 }, - [BIND_DELETE_BLOCK] = { CCPAD_R, 0 }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_INVENTORY] = { CCPAD_2 }, + [BIND_PLACE_BLOCK] = { CCPAD_5 }, + [BIND_HOTBAR_RIGHT] = { CCPAD_L }, + [BIND_DELETE_BLOCK] = { CCPAD_R }, - [BIND_SET_SPAWN] = { CCPAD_START, 0 }, + [BIND_SET_SPAWN] = { CCPAD_START }, }; void Gamepads_Init(void) { @@ -169,7 +169,7 @@ void Gamepads_Process(float delta) { ProcessMouse(&inputs, delta); continue; } - int port = Gamepad_Connect(0x64 + i, default_n64); + int port = Gamepad_Connect(0x64 + i, defaults_n64); HandleButtons(port, inputs.btn); ProcessAnalogInput(port, &inputs, delta); } diff --git a/src/dreamcast/Window_Dreamcast.c b/src/dreamcast/Window_Dreamcast.c index 24f91dcdd..390d973e1 100644 --- a/src/dreamcast/Window_Dreamcast.c +++ b/src/dreamcast/Window_Dreamcast.c @@ -222,6 +222,27 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_dc[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + void Gamepads_Init(void) { Input.Sources |= INPUT_SOURCE_GAMEPAD; } @@ -264,7 +285,7 @@ static void HandleController(int port, bool dual_analog, cont_state_t* state, fl // TODO: verify values are right if(dual_analog) { - HandleJoystick(port, PAD_AXIS_LEFT, state->joyx, state->joyy, delta); + HandleJoystick(port, PAD_AXIS_LEFT, state->joyx, state->joyy, delta); HandleJoystick(port, PAD_AXIS_RIGHT, state->joy2x, state->joy2y, delta); } else @@ -287,7 +308,7 @@ void Gamepads_Process(float delta) { int dual_analog = cont_has_capabilities(cont, CONT_CAPABILITIES_DUAL_ANALOG); if(dual_analog == -1) dual_analog = 0; - int port = Gamepad_Connect(0xDC + i, PadBind_Defaults); + int port = Gamepad_Connect(0xDC + i, defaults_dc); HandleButtons(port, state->buttons); HandleController(port, dual_analog, state, delta); } diff --git a/src/gcwii/Window_GCWii.c b/src/gcwii/Window_GCWii.c index 2561ce606..74310224b 100644 --- a/src/gcwii/Window_GCWii.c +++ b/src/gcwii/Window_GCWii.c @@ -111,25 +111,21 @@ void Window_RequestClose(void) { *#########################################################################################################################*/ static PADStatus gc_pads[PAD_CHANMAX]; -static const BindMapping gcpad_defaults[BIND_COUNT] = { - [BIND_FORWARD] = { CCPAD_UP, 0 }, - [BIND_BACK] = { CCPAD_DOWN, 0 }, - [BIND_LEFT] = { CCPAD_LEFT, 0 }, - [BIND_RIGHT] = { CCPAD_RIGHT, 0 }, - [BIND_JUMP] = { CCPAD_1, 0 }, - [BIND_SET_SPAWN] = { CCPAD_START, 0 }, - [BIND_CHAT] = { CCPAD_4, 0 }, - [BIND_INVENTORY] = { CCPAD_3, 0 }, - [BIND_SEND_CHAT] = { CCPAD_START, 0 }, - [BIND_DELETE_BLOCK] = { CCPAD_L, 0 }, - [BIND_PLACE_BLOCK] = { CCPAD_R, 0 }, +static const BindMapping defaults_gc[BIND_COUNT] = { + [BIND_FLY_UP] = { CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_LEFT }, + [BIND_HOTBAR_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, [BIND_SPEED] = { CCPAD_2, CCPAD_L }, [BIND_FLY] = { CCPAD_2, CCPAD_R }, [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, - [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, - [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, - [BIND_HOTBAR_LEFT] = { CCPAD_2, CCPAD_LEFT }, - [BIND_HOTBAR_RIGHT] = { CCPAD_2, CCPAD_RIGHT } }; #define PAD_AXIS_SCALE 8.0f @@ -170,7 +166,7 @@ static void ProcessPADInput(PADStatus* pad, int i, float delta) { return; // not connected, still busy, etc } - int port = Gamepad_Connect(0x5C + i, gcpad_defaults); + int port = Gamepad_Connect(0x5C + i, defaults_gc); ProcessPAD_Buttons(port, gc_pads[i].button); ProcessPAD_Joystick(port, PAD_AXIS_LEFT, gc_pads[i].stickX, gc_pads[i].stickY, delta); ProcessPAD_Joystick(port, PAD_AXIS_RIGHT, gc_pads[i].substickX, gc_pads[i].substickY, delta); diff --git a/src/nds/Graphics_NDS.c b/src/nds/Graphics_NDS.c index 285cccba2..a96b92d49 100644 --- a/src/nds/Graphics_NDS.c +++ b/src/nds/Graphics_NDS.c @@ -1,5 +1,3 @@ -#include "Core.h" -#ifdef CC_BUILD_NDS #include "_GraphicsBase.h" #include "Errors.h" #include "Logger.h" @@ -833,5 +831,4 @@ void Gfx_DrawIndexedTris_T2fC4b(int verticesCount, int startVertex) { if (skipRendering) return; Draw_TexturedTriangles(verticesCount, startVertex); } -#endif diff --git a/src/nds/Platform_NDS.c b/src/nds/Platform_NDS.c index cde2cb6b5..e39bbc349 100644 --- a/src/nds/Platform_NDS.c +++ b/src/nds/Platform_NDS.c @@ -1,5 +1,3 @@ -#include "Core.h" -#if defined CC_BUILD_NDS #define CC_NO_UPDATER #define CC_NO_DYNLIB @@ -658,4 +656,4 @@ static cc_result GetMachineID(cc_uint32* key) { cc_result Platform_GetEntropy(void* data, int len) { return ERR_NOT_SUPPORTED; } -#endif + diff --git a/src/nds/Window_NDS.c b/src/nds/Window_NDS.c index f722b6ff4..a55f381e1 100644 --- a/src/nds/Window_NDS.c +++ b/src/nds/Window_NDS.c @@ -1,5 +1,3 @@ -#include "Core.h" -#if defined CC_BUILD_NDS #include "Window.h" #include "Platform.h" #include "Input.h" @@ -256,13 +254,34 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* -*#########################################################################################################################*/ +*#########################################################################################################################*/ +static const BindMapping defaults_nds[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + void Gamepads_Init(void) { Input.Sources |= INPUT_SOURCE_GAMEPAD; } void Gamepads_Process(float delta) { - int port = Gamepad_Connect(0xD5, PadBind_Defaults); + int port = Gamepad_Connect(0xD5, defaults_nds); int mods = keysDown() | keysHeld(); Gamepad_SetButton(port, CCPAD_L, mods & KEY_L); @@ -379,4 +398,4 @@ cc_result Window_OpenFileDialog(const struct OpenFileDialogArgs* args) { cc_result Window_SaveFileDialog(const struct SaveFileDialogArgs* args) { return ERR_NOT_SUPPORTED; } -#endif + diff --git a/src/ps2/Window_PS2.c b/src/ps2/Window_PS2.c index a421c3f93..4bd1fe94d 100644 --- a/src/ps2/Window_PS2.c +++ b/src/ps2/Window_PS2.c @@ -227,6 +227,27 @@ void Window_DisableRawMouse(void) { Input.RawMode = false; } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_ps2[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + static char padBuf0[256] __attribute__((aligned(64))); static char padBuf1[256] __attribute__((aligned(64))); @@ -299,7 +320,7 @@ static void ProcessPad(int i, float delta) { int ret = padRead(i, 0, &pad); if (ret == 0) return; - int port = Gamepad_Connect(0x503 + i, PadBind_Defaults); + int port = Gamepad_Connect(0x503 + i, defaults_ps2); ProcessPadInput(port, delta, &pad); } diff --git a/src/ps3/Window_PS3.c b/src/ps3/Window_PS3.c index ffd5f702c..e7de5ce1c 100644 --- a/src/ps3/Window_PS3.c +++ b/src/ps3/Window_PS3.c @@ -271,6 +271,27 @@ void Window_DisableRawMouse(void) { Input.RawMode = false; } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_ps3[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + static padInfo pad_info; static padData pad_data[MAX_PORT_NUM]; static cc_bool circle_main; @@ -333,7 +354,7 @@ void Gamepads_Process(float delta) { if (!pad_info.status[i]) continue; ioPadGetData(i, &pad_data[i]); - int port = Gamepad_Connect(0x503 + i, PadBind_Defaults); + int port = Gamepad_Connect(0x503 + i, defaults_ps3); ProcessPadInput(port, delta, &pad_data[i]); } } diff --git a/src/psp/Window_PSP.c b/src/psp/Window_PSP.c index ef2b6f5d3..1f493824e 100644 --- a/src/psp/Window_PSP.c +++ b/src/psp/Window_PSP.c @@ -83,6 +83,27 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_psp[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + void Gamepads_Init(void) { Input.Sources |= INPUT_SOURCE_GAMEPAD; @@ -125,7 +146,7 @@ static void ProcessCircleInput(int port, SceCtrlData* pad, float delta) { } void Gamepads_Process(float delta) { - int port = Gamepad_Connect(0x503, PadBind_Defaults); + int port = Gamepad_Connect(0x503, defaults_psp); SceCtrlData pad; /* TODO implement */ diff --git a/src/psvita/Window_PSVita.c b/src/psvita/Window_PSVita.c index eb4d09c05..4648ddfb2 100644 --- a/src/psvita/Window_PSVita.c +++ b/src/psvita/Window_PSVita.c @@ -141,21 +141,21 @@ void Window_DisableRawMouse(void) { Input.RawMode = false; } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ -static const BindMapping vita_padbinds[BIND_COUNT] = { - [BIND_JUMP] = { CCPAD_1 }, - [BIND_SET_SPAWN] = { CCPAD_START }, - [BIND_CHAT] = { CCPAD_4 }, - [BIND_INVENTORY] = { CCPAD_3 }, - [BIND_SEND_CHAT] = { CCPAD_START }, - [BIND_SPEED] = { CCPAD_2, CCPAD_L }, - [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, - [BIND_FLY] = { CCPAD_2, CCPAD_R }, - [BIND_PLACE_BLOCK] = { CCPAD_L }, - [BIND_DELETE_BLOCK] = { CCPAD_R }, - [BIND_FLY_UP] = { CCPAD_UP }, - [BIND_FLY_DOWN] = { CCPAD_DOWN }, - [BIND_HOTBAR_LEFT] = { CCPAD_LEFT }, +static const BindMapping defaults_vita[BIND_COUNT] = { + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_PLACE_BLOCK] = { CCPAD_L }, + [BIND_DELETE_BLOCK] = { CCPAD_R }, + [BIND_FLY_UP] = { CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_LEFT }, [BIND_HOTBAR_RIGHT] = { CCPAD_RIGHT }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, }; static cc_bool circle_main; @@ -207,7 +207,7 @@ static void ProcessCircleInput(int port, int axis, int x, int y, float delta) { } static void ProcessPadInput(float delta) { - int port = Gamepad_Connect(0x503, vita_padbinds); + int port = Gamepad_Connect(0x503, defaults_vita); SceCtrlData pad; // sceCtrlReadBufferPositive is blocking (seems to block until vblank), and don't want that diff --git a/src/switch/Window_Switch.c b/src/switch/Window_Switch.c index 4521cb94a..63d52eeb1 100644 --- a/src/switch/Window_Switch.c +++ b/src/switch/Window_Switch.c @@ -147,6 +147,27 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_switch[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + void Gamepads_Init(void) { Input.Sources |= INPUT_SOURCE_GAMEPAD; } @@ -179,7 +200,7 @@ static void ProcessJoystickInput(int port, int axis, HidAnalogStickState* pos, f } void Gamepads_Process(float delta) { - int port = Gamepad_Connect(0x51C, PadBind_Defaults); + int port = Gamepad_Connect(0x51C, defaults_switch); u64 keys = padGetButtons(&pad); HandleButtons(port, keys); diff --git a/src/xbox/Window_Xbox.c b/src/xbox/Window_Xbox.c index 299f78970..fef5d7324 100644 --- a/src/xbox/Window_Xbox.c +++ b/src/xbox/Window_Xbox.c @@ -86,6 +86,27 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_xbox[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + static xid_dev_t* xid_ctrl; static xid_gamepad_in gp_state; @@ -184,7 +205,7 @@ void Gamepads_Process(float delta) { usbh_pooling_hubs(); #endif if (!xid_ctrl) return; - int port = Gamepad_Connect(0xB0, PadBind_Defaults); + int port = Gamepad_Connect(0xB0, defaults_xbox); HandleButtons(port, &gp_state); HandleJoystick(port, PAD_AXIS_LEFT, gp_state.leftStickX, gp_state.leftStickY, delta); diff --git a/src/xbox360/Window_Xbox360.c b/src/xbox360/Window_Xbox360.c index 71833c7b7..910c4977b 100644 --- a/src/xbox360/Window_Xbox360.c +++ b/src/xbox360/Window_Xbox360.c @@ -85,6 +85,27 @@ void Window_UpdateRawMouse(void) { } /*########################################################################################################################* *-------------------------------------------------------Gamepads----------------------------------------------------------* *#########################################################################################################################*/ +static const BindMapping defaults_xbox360[BIND_COUNT] = { + [BIND_FORWARD] = { CCPAD_UP }, + [BIND_BACK] = { CCPAD_DOWN }, + [BIND_LEFT] = { CCPAD_LEFT }, + [BIND_RIGHT] = { CCPAD_RIGHT }, + [BIND_JUMP] = { CCPAD_1 }, + [BIND_SET_SPAWN] = { CCPAD_START }, + [BIND_CHAT] = { CCPAD_4 }, + [BIND_INVENTORY] = { CCPAD_3 }, + [BIND_SEND_CHAT] = { CCPAD_START }, + [BIND_DELETE_BLOCK] = { CCPAD_L }, + [BIND_PLACE_BLOCK] = { CCPAD_R }, + [BIND_SPEED] = { CCPAD_2, CCPAD_L }, + [BIND_FLY] = { CCPAD_2, CCPAD_R }, + [BIND_NOCLIP] = { CCPAD_2, CCPAD_3 }, + [BIND_FLY_UP] = { CCPAD_2, CCPAD_UP }, + [BIND_FLY_DOWN] = { CCPAD_2, CCPAD_DOWN }, + [BIND_HOTBAR_LEFT] = { CCPAD_ZL }, + [BIND_HOTBAR_RIGHT] = { CCPAD_ZR } +}; + void Gamepads_Init(void) { Input.Sources |= INPUT_SOURCE_GAMEPAD; @@ -131,7 +152,7 @@ static void HandleJoystick(int port, int axis, int x, int y, float delta) { void Gamepads_Process(float delta) { usb_do_poll(); - int port = Gamepad_Connect(0xB0360, PadBind_Defaults); + int port = Gamepad_Connect(0xB0360, defaults_xbox360); struct controller_data_s pad; int res = get_controller_data(&pad, 0);