Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_gamecontroller_Step_1

(view raw script w/o annotations or w/e)
1
if (os_type == os_windows || os_type == os_linux || os_type == os_macosx)
2
{
3
    var controllerUpdate = -1;
4
    for (var i = 0; i < gamepad_get_device_count(); i++)
5
    {
6
        if (gamepad_is_connected(i) && i != gamepad_id)
7
        {
8
            if (gamepad_button_check(i, gp_face1) || gamepad_button_check(i, gp_face2) || gamepad_button_check(i, gp_face3) || gamepad_button_check(i, gp_face4) || gamepad_button_check(i, gp_padd) || gamepad_button_check(i, gp_padr) || gamepad_button_check(i, gp_padu) || gamepad_button_check(i, gp_padl) || abs(gamepad_axis_value(i, gp_axislh)) > 0.8 || abs(gamepad_axis_value(i, gp_axislv)) > 0.8)
9
            {
10
                if (gamepad_get_description(i) != gamepad_get_description(gamepad_id) && gamepad_get_guid(i) != gamepad_get_guid(gamepad_id))
11
                    controllerUpdate = i;
12
                break;
13
            }
14
        }
15
    }
16
    if (controllerUpdate != -1)
17
    {
18
        gamepad_id = controllerUpdate;
19
        gamepad_active = 1;
20
        var gamepad_description = gamepad_get_description(gamepad_id);
21
        if (gamepad_get_guid(gamepad_id) == "4c05e60c000000000000504944564944")
22
        {
23
            show_debug_message("***** Remap controller: " + gamepad_description + " to " + "DualSense Wireless Controller");
24
            var mapping = "a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,";
25
            gamepad_test_mapping(gamepad_id, "4c05e60c000000000000504944564944," + gamepad_description + "," + mapping);
26
            gamepad_description = "DualSense Wireless Controller";
27
        }
28
        gamepad_type = gamepad_description;
29
        if (gamepad_type != global.gamepad_type)
30
        {
31
            global.gamepad_type = gamepad_type;
32
            
scr_controls_default
scr_controls_default

function
scr_controls_default()
{ global.button0 = gp_face1; global.button1 = gp_face2; global.button2 = gp_face4; if (os_type == os_ps4 || os_type == os_ps5) { var os_map = os_get_info(); var ps4_confirm_button = undefined; if (os_map != -1) { var mapsize = ds_map_size(os_map); var key = ds_map_find_first(os_map); for (var i = 0; i < (mapsize - 1); i++) { if (key == "enter_button_assign") ps4_confirm_button = ds_map_find_value(os_map, key); else key = ds_map_find_next(os_map, key); } ds_map_destroy(os_map); } if (ps4_confirm_button == 0) { global.button0 = gp_face2; global.button1 = gp_face1; } else { global.button0 = gp_face1; global.button1 = gp_face2; } global.button2 = gp_face4; } else if (scr_is_switch_os()) { global.button0 = gp_face2; global.button1 = gp_face1; global.button2 = gp_face4; } global.default_button0 = global.button0; global.default_button1 = global.button1; global.default_button2 = global.button2; global.input_k[0] = vk_down; global.input_k[1] = vk_right; global.input_k[2] = vk_up; global.input_k[3] = vk_left; global.input_k[4] = ord("Z"); global.input_k[5] = ord("X"); global.input_k[6] = ord("C"); global.input_k[7] = vk_enter; global.input_k[8] = vk_shift; global.input_k[9] = vk_control; global.input_g[0] = gp_padd; global.input_g[1] = gp_padr; global.input_g[2] = gp_padu; global.input_g[3] = gp_padl; global.input_g[4] = global.button0; global.input_g[5] = global.button1; global.input_g[6] = global.button2; global.input_g[7] = 999; global.input_g[8] = 999; global.input_g[9] = 999; if (!i_ex(obj_gamecontroller)) instance_create(0, 0, obj_gamecontroller); with (obj_gamecontroller) gamepad_shoulderlb_reassign = 0; }
();
33
            if (_load_enabled)
34
            {
35
                if (ossafe_file_exists("keyconfig_" + string(global.filechoice) + ".ini"))
36
                {
37
                    ossafe_ini_open("keyconfig_" + string(global.filechoice) + ".ini");
38
                    for (var i = 0; i < 10; i++)
39
                    {
40
                        readval = ini_read_real("KEYBOARD_CONTROLS", string(i), -1);
41
                        if (readval != -1)
42
                            global.input_k[i] = readval;
43
                    }
44
                    for (var i = 0; i < 10; i++)
45
                    {
46
                        readval = ini_read_real("GAMEPAD_CONTROLS", string(i), -1);
47
                        if (readval != -1)
48
                            global.input_g[i] = readval;
49
                    }
50
                    var readval = ini_read_real("SHOULDERLB_REASSIGN", "SHOULDERLB_REASSIGN", gamepad_shoulderlb_reassign);
51
                    if (readval != -1)
52
                        gamepad_shoulderlb_reassign = readval;
53
                    global.button0 = global.input_g[4];
54
                    global.button1 = global.input_g[5];
55
                    global.button2 = global.input_g[6];
56
                    ossafe_ini_close();
57
                }
58
            }
59
        }
60
    }
61
}