Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_quizroom_Draw_0

(view raw script w/o annotations or w/e)
1
var _camx = camx;
2
var _camy = camy;
3
var _py = camy + 410;
4
if (con != 2)
5
    timer++;
6
if (con > 0 && con < 4)
7
{
8
    draw_set_halign(fa_center);
9
    draw_set_color(c_white);
10
    draw_set_font(
scr_84_get_font
scr_84_get_font

function
scr_84_get_font(arg0)
{ if (!variable_global_exists("chemg_last_get_font")) global.chemg_last_get_font = ""; if (arg0 != global.chemg_last_get_font) global.chemg_last_get_font = arg0; return ds_map_find_value(global.font_map, arg0); }
("8bit"));
11
    kr_pomark.image_index = kr_podium;
12
    su_pomark.image_index = su_podium;
13
    ra_pomark.image_index = ra_podium;
14
    draw_set_valign(fa_top);
15
    draw_set_halign(fa_left);
16
}
17
if (timer > 0 && timer <= transition_time)
18
    
scr_quizwipe
scr_quizwipe

function
scr_quizwipe(arg0, arg1 = 0, arg2 = true, arg3 = 0)
{ var _surf; if (arg2) { _surf = surface_create(640, 480); surface_set_target(_surf); draw_clear_alpha(c_black, 0); } draw_primitive_begin(pr_trianglefan); arg0 = clamp01(arg0); draw_set_color(arg1); var _camx, _camy; if (arg2) { _camx = 320; _camy = 240; } else { _camx = camerax() + 320; _camy = cameray() + 240; } var _startangle = lerp_clamped(0, 360, (arg0 * 2) - 1); var _endangle = lerp_clamped(0, 360, arg0 * 2); draw_vertex(_camx, _camy); for (var i2 = 0; i2 <= 8; i2++) { var _xx = lengthdir_x(450, lerp(90 - _startangle, 90 - _endangle, i2 / 8)); var _yy = lengthdir_y(450, lerp(90 - _startangle, 90 - _endangle, i2 / 8)); draw_vertex(_xx + _camx, _yy + _camy); } draw_primitive_end(); if (arg2) { gpu_set_alphatestenable(true); gpu_set_alphatestref(1); gpu_set_blendmode_ext(bm_dest_alpha, bm_dest_alpha); var _xx = 540; var _yy = 430; if (arg3 == 1) { draw_sprite_ext(spr_dw_tv_tvtimeSign_quizwipe, 0, _xx + irandom_range(-2, 2), _yy + irandom_range(-2, 2), 1, 1, random_range(-5, 5), #666666, 1); } else if (arg3 == 2) { var _xshifta = irandom_range(-3, 3) + 2; var _xshiftb = irandom_range(-3, 3) + 2; gpu_set_colorwriteenable(true, false, false, true); draw_sprite_pos(spr_dw_tv_tvtimeSign_quizwipe, 0, (_xx - 80) + _xshifta, _yy - 35, _xx + 82 + _xshifta, _yy - 35, _xx + 80 + _xshiftb, _yy + 35, (_xx - 80) + _xshiftb, _yy + 35, 0.1); _xshifta -= 2; _xshiftb -= 2; gpu_set_colorwriteenable(false, true, false, true); draw_sprite_pos(spr_dw_tv_tvtimeSign_quizwipe, 0, (_xx - 80) + _xshifta, _yy - 35, _xx + 80 + _xshifta, _yy - 35, _xx + 80 + _xshiftb, _yy + 35, (_xx - 80) + _xshiftb, _yy + 35, 0.1); _xshifta -= 2; _xshiftb -= 2; gpu_set_colorwriteenable(false, false, true, true); draw_sprite_pos(spr_dw_tv_tvtimeSign_quizwipe, 0, (_xx - 80) + _xshifta, _yy - 35, _xx + 80 + _xshifta, _yy - 35, _xx + 80 + _xshiftb, _yy + 35, (_xx - 80) + _xshiftb, _yy + 35, 0.1); gpu_set_colorwriteenable(true, true, true, true); } else { draw_sprite_ext(spr_dw_tv_tvtimeSign_quizwipe, 0, _xx, _yy, 2, 2, 0, #555555, 1); } gpu_set_blendmode(bm_normal); gpu_set_alphatestref(128); gpu_set_alphatestenable(false); surface_reset_target(); draw_surface(_surf, camerax(), cameray()); surface_free(_surf); } }
(timer / transition_time, 0, false, board4 ? 2 : 0);
19
if ((con == 0 || con == 3) && timer >= (transition_time / 2))
20
{
21
    _camx = camx;
22
    _camy = camy;
23
    con++;
24
    if (con == 1)
25
    {
26
        if (!i_ex(bg))
27
            debug_print("no bg found");
28
        else
29
            bg.visible = true;
30
        with (susie)
31
        {
32
            fun = 1;
33
            other.susie_xy.x = x;
34
            other.susie_xy.y = y;
35
            other.start_sprite[0] = sprite_index;
36
            other.start_speed[0] = image_speed;
37
            visible = true;
38
            if (other.board4)
39
                setxy(_camx + 80, _py - 28 - (sprite_height - sprite_yoffset));
40
            else
41
                setxy((_camx + 100) - (sprite_width / 2), _py - 28 - (sprite_height - sprite_yoffset));
42
        }
43
        var susie_x = susie.x;
44
        var susie_y = susie.y;
45
        with (gacha_balls[1])
46
            set_pos(susie_x, susie_y);
47
        with (kris)
48
        {
49
            fun = 1;
50
            other.kris_xy.x = x;
51
            other.kris_xy.y = y;
52
            other.start_sprite[1] = sprite_index;
53
            other.start_speed[1] = image_speed;
54
            visible = true;
55
            setxy(((_camx + 250) - (sprite_width / 2)) + 1, _py - 28 - (sprite_height - sprite_yoffset));
56
        }
57
        var kris_x = kris.x;
58
        var kris_y = kris.y;
59
        with (gacha_balls[0])
60
            set_pos(kris_x, kris_y);
61
        with (ralsei)
62
        {
63
            fun = 1;
64
            other.ralsei_xy.x = x;
65
            other.ralsei_xy.y = y;
66
            other.start_sprite[2] = sprite_index;
67
            other.start_speed[2] = image_speed;
68
            visible = true;
69
            if (other.board4)
70
                setxy(_camx + 380, _py - 28 - (sprite_height - sprite_yoffset));
71
            else
72
                setxy(((_camx + 400) - (sprite_width / 2)) + 1, _py - 28 - (sprite_height - sprite_yoffset));
73
        }
74
        var ral_x = ralsei.x - 2;
75
        var ral_y = ralsei.y;
76
        with (gacha_balls[2])
77
            set_pos(ral_x, ral_y);
78
        with (tenna)
79
        {
80
            other.tenna_xy.x = x;
81
            other.tenna_xy.y = y;
82
            setxy(_camx + 568, _camy + 420);
83
            drawtype = 0;
84
            wobblestate = 1;
85
            wobbletime = 8;
86
            wobbleamt = 10;
87
            visible = true;
88
            sprite_index = other.tenna_podium;
89
            image_index = 3;
90
        }
91
    }
92
    if (con == 4)
93
    {
94
        bg.visible = false;
95
        var i = array_length_1d(gacha_balls) - 1;
96
        while (i >= 0)
97
        {
98
            safe_delete(gacha_balls[i]);
99
            i--;
100
        }
101
        safe_delete(kris);
102
        safe_delete(ralsei);
103
        safe_delete(susie);
104
        safe_delete(tenna);
105
        with (obj_confetti_overworld)
106
            instance_destroy();
107
    }
108
}
109
if (timer >= transition_time)
110
{
111
    timer = 0;
112
    if (con == 4)
113
        instance_destroy();
114
    else
115
        con++;
116
}