Deltarune (Chapter Select) script viewer

← back to main script listing

gml_Object_obj_gamecontroller_Other_75

(view raw script w/o annotations or w/e)
1
show_debug_message("***** Event = " + ds_map_find_value(async_load, "event_type"));
2
switch (ds_map_find_value(async_load, "event_type"))
3
{
4
    case "gamepad discovered":
5
        var pad = ds_map_find_value(async_load, "pad_index");
6
        if (is_connecting_controller == 1)
7
            exit;
8
        if (gamepad_is_connected(pad))
9
        {
10
            gamepad_id = pad;
11
            if (scr_is_switch_os() && is_connecting_controller < 2)
12
            {
13
                is_connecting_controller = 1;
14
                if (switch_controller_support_show() == 0)
15
                {
16
                    gamepad_active = 1;
17
                    alarm[0]
 = 1;
gml_Object_obj_gamecontroller_Alarm_0.gml

is_connecting_controller = 0;
18
                    gamepad_id = switch_controller_support_get_selected_id();
19
                }
20
                else
21
                {
22
                    gamepad_active = 0;
23
                    alarm[0]
 = 1;
gml_Object_obj_gamecontroller_Alarm_0.gml

is_connecting_controller = 0;
24
                    global.gamepad_type = "N/A";
25
                    exit;
26
                }
27
            }
28
            alarm[0]
 = 1;
gml_Object_obj_gamecontroller_Alarm_0.gml

is_connecting_controller = 0;
29
            gamepad_active = 1;
30
            var gamepad_description = gamepad_get_description(gamepad_id);
31
            show_debug_message("***** Connected controller: " + gamepad_type + " | " + gamepad_description);
32
            if (gamepad_get_guid(gamepad_id) == "4c05e60c000000000000504944564944")
33
            {
34
                show_debug_message("***** Remap controller: " + gamepad_description + " to " + "DualSense Wireless Controller");
35
                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,";
36
                gamepad_test_mapping(gamepad_id, "4c05e60c000000000000504944564944," + gamepad_description + "," + mapping);
37
                gamepad_description = "DualSense Wireless Controller";
38
            }
39
            gamepad_type = gamepad_description;
40
            if (gamepad_type != global.gamepad_type)
41
                global.gamepad_type = gamepad_type;
42
        }
43
        break;
44
    case "gamepad lost":
45
        var pad = ds_map_find_value(async_load, "pad_index");
46
        if (pad != gamepad_id)
47
            exit;
48
        if (is_connecting_controller > 0)
49
            exit;
50
        gamepad_active = 0;
51
        if (scr_is_switch_os())
52
        {
53
            if (switch_controller_support_show() == 0)
54
            {
55
                gamepad_active = 1;
56
                gamepad_id = switch_controller_support_get_selected_id();
57
                is_connecting_controller = 2;
58
                alarm[0]
 = 2;
gml_Object_obj_gamecontroller_Alarm_0.gml

is_connecting_controller = 0;
59
            }
60
        }
61
        global.gamepad_type = "N/A";
62
        break;
63
}