mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-24 05:10:42 -04:00
Gamecube: Change dpad to just be fly up/down hotbar left/right
Also make it possible for other platforms to override
This commit is contained in:
parent
d2a0a597b9
commit
71991c2275
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
#include "Core.h"
|
||||
#if defined CC_BUILD_NDS
|
||||
#include "Window.h"
|
||||
#include "Platform.h"
|
||||
#include "Input.h"
|
||||
@ -257,12 +255,33 @@ 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
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -141,21 +141,21 @@ void Window_DisableRawMouse(void) { Input.RawMode = false; }
|
||||
/*########################################################################################################################*
|
||||
*-------------------------------------------------------Gamepads----------------------------------------------------------*
|
||||
*#########################################################################################################################*/
|
||||
static const BindMapping vita_padbinds[BIND_COUNT] = {
|
||||
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_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 },
|
||||
[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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user