Connect on-screen controls to an IBAction method

This commit is contained in:
TwistedUmbrella 2015-08-25 12:55:43 -04:00
parent c073e5632f
commit 2e41057e7f
3 changed files with 785 additions and 722 deletions

View File

@ -10,17 +10,6 @@
#include "types.h"
extern u16 kcode[4];
extern u32 vks[4];
extern s8 joyx[4],joyy[4];
extern u8 rt[4],lt[4];
#define key_CONT_A (1 << 2)
#define key_CONT_START (1 << 3)
#define key_CONT_DPAD_LEFT (1 << 6)
int dpad_or_btn = 0;
@implementation EmulatorView
/*
@ -31,23 +20,4 @@ int dpad_or_btn = 0;
}
*/
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (dpad_or_btn &1)
kcode[0] &= ~(key_CONT_START|key_CONT_A);
else
kcode[0] &= ~(key_CONT_DPAD_LEFT);
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
// [event allTouches];
if (dpad_or_btn &1)
kcode[0] |= (key_CONT_START|key_CONT_A);
else
kcode[0] |= (key_CONT_DPAD_LEFT);
dpad_or_btn++;
}
@end

View File

@ -178,6 +178,66 @@ extern "C" int reicast_main(int argc, char* argv[]);
}
- (IBAction)keycode:(id)sender
{
UIButton *instance = (UIButton*)sender;
if (instance == self.img_dpad_l) {
kcode[0] &= ~(DC_DPAD_LEFT);
} else {
kcode[0] |= ~(DC_DPAD_LEFT);
}
if (instance == self.img_dpad_r) {
kcode[0] &= ~(DC_DPAD_RIGHT);
} else {
kcode[0] |= ~(DC_DPAD_RIGHT);
}
if (instance == self.img_dpad_u) {
kcode[0] &= ~(DC_DPAD_UP);
} else {
kcode[0] |= ~(DC_DPAD_UP);
}
if (instance == self.img_dpad_d) {
kcode[0] &= ~(DC_DPAD_DOWN);
} else {
kcode[0] |= ~(DC_DPAD_DOWN);
}
if (instance == self.img_abxy_a) {
kcode[0] &= ~(DC_BTN_A);
} else {
kcode[0] |= (DC_BTN_A);
}
if (instance == self.img_abxy_b) {
kcode[0] &= ~(DC_BTN_B);
} else {
kcode[0] |= (DC_BTN_B);
}
if (instance == self.img_abxy_x) {
kcode[0] &= ~(DC_BTN_X);
} else {
kcode[0] |= (DC_BTN_X);
}
if (instance == self.img_abxy_y) {
kcode[0] &= ~(DC_BTN_Y);
} else {
kcode[0] |= (DC_BTN_Y);
}
if (instance == self.img_lt) {
kcode[0] &= ~(DC_AXIS_LT);
} else {
kcode[0] |= (DC_AXIS_LT);
}
if (instance == self.img_rt) {
kcode[0] &= ~(DC_AXIS_RT);
} else {
kcode[0] |= (DC_AXIS_RT);
}
if (instance == self.img_start) {
kcode[0] &= ~(DC_BTN_START);
} else {
kcode[0] |= (DC_BTN_START);
}
}
- (void)toggleHardwareController:(BOOL)useHardware {
[self.controllerView setHidden:useHardware];
if (useHardware) {

File diff suppressed because it is too large Load Diff