Files
AM2R-Community-Updates/scripts/touch_keys.gml
2020-12-22 20:54:55 -06:00

360 lines
15 KiB
Plaintext

/// bluetooth_keys()
ctrl_Left = 0;
ctrl_Right = 0;
ctrl_Up = 0;
ctrl_Down = 0;
ctrl_A = 0;
ctrl_B = 0;
ctrl_X = 0;
ctrl_L = 0;
ctrl_R = 0;
ctrl_Select = 0;
ctrl_Start = 0;
ctrl_L2 = 0;
ctrl_R2 = 0;
ctrl_Exit = 0;
ctrl_Menu1 = 0;
ctrl_Menu2 = 0;
walk_zone = 0;
// Haptic Effects
if(global.opxjoyvib && instance_exists(oBigQuake) && global.ingame) {
if(floor(oBigQuake.statetime) == 575) {
immersion_play_effect(34);
}
if ((oBigQuake.statetime > 640) && (oBigQuake.statetime < 1150)) {
immersion_play_effect(28);
}
else if(floor(oBigQuake.statetime) == 1150){
immersion_stop();
immersion_play_effect(41);
}
}
if(global.opxjoyvib && instance_exists(oBigQuakeQueen) && global.ingame) {
if(floor(oBigQuakeQueen.statetime) == 75) {
immersion_play_effect(33);
}
else if ((oBigQuakeQueen.statetime > 140) && (oBigQuakeQueen.statetime < 575)) {
immersion_play_effect(27);
}
else if(floor(oBigQuakeQueen.statetime) == 575){
immersion_stop();
immersion_play_effect(40);
}
}
if(global.opxjoyvib && sfx_isplaying(sndDrillLoop) && global.ingame) {
immersion_play_effect(111);
}
if(!global.ingame || room == rm_transition) {
immersion_stop();
}
// Touch
if(instance_exists(oTouchControls) && (global.joydetected == 0 || global.ingame == false)) {
if (oTouchControls.fire_pressed[0] != -1) {
ctrl_A = 1;
global.controltype = 0;
}
if (oTouchControls.jump_pressed[0] != -1) {
ctrl_B = 1;
global.controltype = 0;
}
if (oTouchControls.morph_pressed[0] != -1) {
ctrl_X = 1;
global.controltype = 0;
}
if (oTouchControls.aimupleft_pressed[0] != -1) {
ctrl_L = 1;
if(instance_exists(oCharacter) && oCharacter.facing == oCharacter.RIGHT) {
if (oCharacter.state != oCharacter.BALL &&
oCharacter.state != oCharacter.AIRBALL &&
oCharacter.state != oCharacter.SPIDERBALL &&
oCharacter.state != oCharacter.GRABBEDQUEENMORPH &&
oCharacter.state != oCharacter.GRABBEDQUEENBELLY) {
ctrl_Left = 1;
}
}
global.controltype = 0;
}
if (global.opaimstyle && oTouchControls.aimdownleft_pressed[0] != -1) {
ctrl_L2 = 1;
if(instance_exists(oCharacter) && oCharacter.facing == oCharacter.RIGHT) {
if (oCharacter.state != oCharacter.BALL &&
oCharacter.state != oCharacter.AIRBALL &&
oCharacter.state != oCharacter.SPIDERBALL &&
oCharacter.state != oCharacter.GRABBEDQUEENMORPH &&
oCharacter.state != oCharacter.GRABBEDQUEENBELLY) {
ctrl_Left = 1;
}
}
global.controltype = 0;
}
if (oTouchControls.aimupright_pressed[0] != -1) {
ctrl_L = 1;
if(instance_exists(oCharacter) && oCharacter.facing == oCharacter.LEFT) {
if (oCharacter.state != oCharacter.BALL &&
oCharacter.state != oCharacter.AIRBALL &&
oCharacter.state != oCharacter.SPIDERBALL &&
oCharacter.state != oCharacter.GRABBEDQUEENMORPH &&
oCharacter.state != oCharacter.GRABBEDQUEENBELLY) {
ctrl_Right = 1;
}
}
global.controltype = 0;
}
if (global.opaimstyle && oTouchControls.aimdownright_pressed[0] != -1) {
ctrl_L2 = 1;
if(instance_exists(oCharacter) && oCharacter.facing == oCharacter.LEFT) {
if (oCharacter.state != oCharacter.BALL &&
oCharacter.state != oCharacter.AIRBALL &&
oCharacter.state != oCharacter.SPIDERBALL &&
oCharacter.state != oCharacter.GRABBEDQUEENMORPH &&
oCharacter.state != oCharacter.GRABBEDQUEENBELLY) {
ctrl_Right = 1;
}
}
global.controltype = 0;
}
if (oTouchControls.missile_pressed[0] != -1) {
ctrl_R = 1;
global.controltype = 0;
}
if (oTouchControls.pause_pressed[0] != -1) {
ctrl_Start = 1;
global.controltype = 0;
}
if (oTouchControls.fire_pressed[0] != -1) {
ctrl_Menu1 = 1;
global.controltype = 0;
}
if (oTouchControls.jump_pressed[0] != -1) {
ctrl_Menu2 = 1;
global.controltype = 0;
}
xjoyx = oTouchControls.joyx;
xjoyy = oTouchControls.joyy;
if (is_past_deadzone(xjoyx, xjoyy, 2)) {
if (is_walkzone(xjoyx, xjoyy, 2)) walk_zone = 1;
if (ctrl_Left == 0 && ctrl_Right == 0 && xjoyx < -(global.opxjoydz / 100) && oTouchControls.up_pressed[0] == -1 && oTouchControls.down_pressed[0] == -1) {
ctrl_Left = -xjoyx;
global.controltype = 2;
}
if (ctrl_Left == 0 && ctrl_Right == 0 && xjoyx > (global.opxjoydz / 100) && oTouchControls.up_pressed[0] == -1 && oTouchControls.down_pressed[0] == -1) {
ctrl_Right = xjoyx;
global.controltype = 2;
}
if (ctrl_Up == 0 && ctrl_Down == 0 && xjoyy < -(global.opxjoydz / 100) && oTouchControls.left_pressed[0] == -1 && oTouchControls.right_pressed[0] == -1) {
ctrl_Up = 1;
global.controltype = 2;
}
if (ctrl_Up == 0 && ctrl_Down == 0 && xjoyy > (global.opxjoydz / 100) && oTouchControls.left_pressed[0] == -1 && oTouchControls.right_pressed[0] == -1) {
ctrl_Down = 1;
global.controltype = 2;
}
}
}
// Virtual keycodes
if (gamepad_is_supported()) {
if (gamepad_is_connected(global.opjoyid) && global.joydetected && !global.compatibilitymode) {
xjoyx = gamepad_axis_value(global.opjoyid, gp_axislh);
xjoyy = gamepad_axis_value(global.opjoyid, gp_axislv);
if (is_past_deadzone(xjoyx, xjoyy, 1)) {
if (is_walkzone(xjoyx, xjoyy, 2)) walk_zone = 1;
if (ctrl_Left == 0 && ctrl_Right == 0 && xjoyx < -(global.opxjoydz / 200)) {
ctrl_Left = -xjoyx;
global.controltype = 2;
}
if (ctrl_Left == 0 && ctrl_Right == 0 && xjoyx > global.opxjoydz / 200) {
ctrl_Right = xjoyx;
global.controltype = 2;
}
if (ctrl_Up == 0 && ctrl_Down == 0 && xjoyy < -(global.opxjoydz / 200)) {
ctrl_Up = 1;
global.controltype = 2;
}
if (ctrl_Up == 0 && ctrl_Down == 0 && xjoyy > global.opxjoydz / 200) {
ctrl_Down = 1;
global.controltype = 2;
}
}
if (ctrl_Left == 0 && ctrl_Right == false && gamepad_button_check(global.opjoyid, gp_padl) ) {
ctrl_Left = 1;
global.controltype = 2;
walk_zone = 0;
}
if (ctrl_Left == 0 && ctrl_Right == false && gamepad_button_check(global.opjoyid, gp_padr)) {
ctrl_Right = 1;
global.controltype = 2;
walk_zone = 0;
}
if (ctrl_Up == 0 && ctrl_Down == false && gamepad_button_check(global.opjoyid, gp_padu)) {
ctrl_Up = 1;
global.controltype = 2;
walk_zone = 0;
}
if (ctrl_Up == 0 && ctrl_Down == false && gamepad_button_check(global.opjoyid, gp_padd)) {
ctrl_Down = 1;
global.controltype = 2;
walk_zone = 0;
}
if (ctrl_A == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_a) || (global.opxjoybtn_a == gp_select && keyboard_check(vk_backspace))) {
ctrl_A = 1;
global.controltype = 2;
}
if (ctrl_B == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_b) || (global.opxjoybtn_b == gp_select && keyboard_check(vk_backspace))) {
ctrl_B = 1;
global.controltype = 2;
}
if (ctrl_X == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_x) || (global.opxjoybtn_x == gp_select && keyboard_check(vk_backspace))) {
ctrl_X = 1;
global.controltype = 2;
}
if (ctrl_L == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_l) || (global.opxjoybtn_l == gp_select && keyboard_check(vk_backspace))) {
ctrl_L = 1;
global.controltype = 2;
}
if (global.opaimstyle == 1 && ctrl_L2 == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_l2) || (global.opxjoybtn_l2 == gp_select && keyboard_check(vk_backspace))) {
ctrl_L2 = 1;
global.controltype = 2;
}
if (ctrl_R == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_r) || (global.opxjoybtn_r == gp_select && keyboard_check(vk_backspace))) {
ctrl_R = 1;
global.controltype = 2;
}
if (ctrl_R2 == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_r2) || (global.opxjoybtn_r2 == gp_select && keyboard_check(vk_backspace))) {
ctrl_R2 = 1;
global.controltype = 2;
}
if (ctrl_Select == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_sel) || (global.opxjoybtn_sel == gp_select && keyboard_check(vk_backspace))) {
ctrl_Select = 1;
global.controltype = 2;
}
if (ctrl_Start == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_str) || (global.opxjoybtn_str == gp_select && keyboard_check(vk_backspace))) {
ctrl_Start = 1;
global.controltype = 2;
}
if (ctrl_Exit == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_exit) || (global.opxjoybtn_exit == gp_select && keyboard_check(vk_backspace))) {
ctrl_Exit = 1;
global.controltype = 2;
}
if (ctrl_Menu1 == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_menu1) || (global.opxjoybtn_menu1 == gp_select && keyboard_check(vk_backspace))) {
ctrl_Menu1 = 1;
global.controltype = 2;
}
if (ctrl_Menu2 == false && gamepad_button_check(global.opjoyid, global.opxjoybtn_menu2) || (global.opxjoybtn_menu2 == gp_select && keyboard_check(vk_backspace))) {
ctrl_Menu2 = 1;
global.controltype = 2;
}
} // if (gamepad_is_connected(global.opjoyid) && global.joydetected && !global.compatibilitymode)
} // if (gamepad_is_supported())
// Numbered scancodes
if (gamepad_is_supported()) {
if (gamepad_is_connected(global.opjoyid) && global.joydetected && global.compatibilitymode) {
if(global.opanalog_stick == 0) {
if(global.opanalog_invert == 0) {
xjoyx = gamepad_axis_value(global.opjoyid, gp_axislh);
xjoyy = gamepad_axis_value(global.opjoyid, gp_axislv);
}
else {
xjoyx = gamepad_axis_value(global.opjoyid, gp_axislv);
xjoyy = gamepad_axis_value(global.opjoyid, gp_axislh);
}
}
else {
if(global.opanalog_invert == 0) {
xjoyx = gamepad_axis_value(global.opjoyid, gp_axisrh);
xjoyy = gamepad_axis_value(global.opjoyid, gp_axisrv);
}
else {
xjoyx = gamepad_axis_value(global.opjoyid, gp_axisrv);
xjoyy = gamepad_axis_value(global.opjoyid, gp_axisrh);
}
}
if (is_past_deadzone(xjoyx, xjoyy, 0)) {
if (is_walkzone(xjoyx, xjoyy, 0)) walk_zone = 1;
if (ctrl_Left == 0 && ctrl_Right == 0 && xjoyx < -(global.opxjoydz / 200)) {
ctrl_Left = -xjoyx;
global.controltype = 1;
}
if (ctrl_Left == 0 && ctrl_Right == 0 && xjoyx > global.opxjoydz / 200) {
ctrl_Right = xjoyx;
global.controltype = 1;
}
if (ctrl_Up == 0 && ctrl_Down == 0 && xjoyy < -(global.opxjoydz / 200)) {
ctrl_Up = 1;
global.controltype = 1;
}
if (ctrl_Up == 0 && ctrl_Down == 0 && xjoyy > global.opxjoydz / 200) {
ctrl_Down = 1;
global.controltype = 1;
}
}
if (ctrl_Left == 0 && ctrl_Right == false && gamepad_button_check(global.opjoyid, global.opjoybtn_padl-1)) {
ctrl_Left = 1;
global.controltype = 1;
walk_zone = 0;
}
if (ctrl_Left == 0 && ctrl_Right == false && gamepad_button_check(global.opjoyid, global.opjoybtn_padr-1)) {
ctrl_Right = 1;
global.controltype = 1;
walk_zone = 0;
}
if (ctrl_Up == 0 && ctrl_Down == false && gamepad_button_check(global.opjoyid, global.opjoybtn_padu-1)) {
ctrl_Up = 1;
global.controltype = 1;
walk_zone = 0;
}
if (ctrl_Up == 0 && ctrl_Down == false && gamepad_button_check(global.opjoyid, global.opjoybtn_padd-1)) {
ctrl_Down = 1;
global.controltype = 1;
walk_zone = 0;
}
if (ctrl_A == false && gamepad_button_check(global.opjoyid, global.opjoybtn_a-1)) {
ctrl_A = 1;
global.controltype = 1;
}
if (ctrl_B == false && gamepad_button_check(global.opjoyid, global.opjoybtn_b-1)) {
ctrl_B = 1;
global.controltype = 1;
}
if (ctrl_X == false && gamepad_button_check(global.opjoyid, global.opjoybtn_x-1)) {
ctrl_X = 1;
global.controltype = 1;
}
if (ctrl_L == false && gamepad_button_check(global.opjoyid, global.opjoybtn_l-1)) {
ctrl_L = 1;
global.controltype = 1;
}
if (global.opaimstyle == 1 && ctrl_L2 == false && gamepad_button_check(global.opjoyid, global.opjoybtn_l2-1)) {
ctrl_L2 = 1;
global.controltype = 1;
}
if (ctrl_R == false && gamepad_button_check(global.opjoyid, global.opjoybtn_r-1)) {
ctrl_R = 1;
global.controltype = 1;
}
if (ctrl_R2 == false && gamepad_button_check(global.opjoyid, global.opjoybtn_r2-1)) {
ctrl_R2 = 1;
global.controltype = 1;
}
if (ctrl_Select == false && gamepad_button_check(global.opjoyid, global.opjoybtn_sel-1)) {
ctrl_Select = 1;
global.controltype = 1;
}
if (ctrl_Start == false && gamepad_button_check(global.opjoyid, global.opjoybtn_str-1)) {
ctrl_Start = 1;
global.controltype = 1;
}
if (ctrl_Exit == false && gamepad_button_check(global.opjoyid, global.opjoybtn_exit-1)) {
ctrl_Exit = 1;
global.controltype = 1;
}
if (ctrl_Menu1 == false && gamepad_button_check(global.opjoyid, global.opjoybtn_menu1-1)) {
ctrl_Menu1 = 1;
global.controltype = 1;
}
if (ctrl_Menu2 == false && gamepad_button_check(global.opjoyid, global.opjoybtn_menu2-1)) {
ctrl_Menu2 = 1;
global.controltype = 1;
}
} // if (gamepad_is_connected(global.opjoyid) && global.joydetected && global.compatibilitymode)
} // if (gamepad_is_supported())