Skip to content

Commit 480cb86

Browse files
committed
Prevent crashing when failing to initialize mica
1 parent 7cebdf6 commit 480cb86

4 files changed

Lines changed: 24 additions & 12 deletions

File tree

scripts/control_create/control_create.gml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ function control_create() {
4444
msgstart = 0
4545
currentfont = 0
4646
acrylic = 1
47+
can_draw_mica = 1
4748
mouseover = 0
4849
display_width = display_get_width()
4950
display_height = display_get_height()

scripts/control_draw/control_draw.gml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function control_draw() {
131131
if (theme = 3) window_background = 15987699
132132
if (theme = 3 && fdark) window_background = 2105376
133133
draw_clear(window_background)
134-
if (theme = 3 && acrylic && wpaperexist) draw_sprite_tiled_ext(wpaperblur, 0,
134+
if (theme = 3 && acrylic && wpaperexist && can_draw_mica) draw_sprite_tiled_ext(wpaperblur, 0,
135135
0 - window_get_x() * (1 / window_scale) - (sprite_get_width(wpaper) * (display_height / sprite_get_height(wpaper)) - display_width) * (1 / window_scale) * (wpaperside) / 2,
136136
0 - window_get_y() * (1 / window_scale) - (sprite_get_height(wpaper) * (display_width / sprite_get_width(wpaper)) - display_height) * (1 / window_scale) * (!wpaperside) / 2,
137137
(1 / window_scale) * (display_width / sprite_get_width(wpaper)) * (!wpaperside) + (1 / window_scale) * (display_height / sprite_get_height(wpaper)) * (wpaperside),
@@ -141,10 +141,10 @@ function control_draw() {
141141
if (theme = 1) draw_set_color(13160660)
142142
if (theme = 2) draw_set_color(c_dark)
143143
if (theme = 3) draw_set_color(15987699)
144-
if (theme = 3 && acrylic && wpaperexist) draw_set_color(15198183)
144+
if (theme = 3 && acrylic && wpaperexist && can_draw_mica) draw_set_color(15198183)
145145
if (theme = 3 && fdark) draw_set_color(2105376)
146-
if (theme = 3 && fdark && acrylic && wpaperexist) draw_set_color(1315860)
147-
if (theme = 3 && acrylic && wpaperexist) draw_set_alpha(0.875)
146+
if (theme = 3 && fdark && acrylic && wpaperexist && can_draw_mica) draw_set_color(1315860)
147+
if (theme = 3 && acrylic && wpaperexist && can_draw_mica) draw_set_alpha(0.875)
148148
draw_rectangle(0, 0, rw, rh, 0)
149149
draw_set_alpha(1)
150150
}
@@ -1165,10 +1165,10 @@ function control_draw() {
11651165
if (theme = 1) draw_set_color(13160660)
11661166
if (theme = 2) draw_set_color(c_dark)
11671167
if (theme = 3) draw_set_color(15987699)
1168-
if (theme = 3 && acrylic && wpaperexist) draw_set_color(c_white)
1168+
if (theme = 3 && acrylic && wpaperexist && can_draw_mica) draw_set_color(c_white)
11691169
if (theme = 3 && fdark) draw_set_color(2105376)
1170-
if (theme = 3 && fdark && acrylic && wpaperexist) draw_set_color(1315860)
1171-
if (theme = 3 && acrylic && wpaperexist) draw_set_alpha(0.875)
1170+
if (theme = 3 && fdark && acrylic && wpaperexist && can_draw_mica) draw_set_color(1315860)
1171+
if (theme = 3 && acrylic && wpaperexist && can_draw_mica) draw_set_alpha(0.875)
11721172
draw_rectangle(0, y1 + 1, x1, rh, 0)
11731173
draw_rectangle(0, 0, rw, y1, 0)
11741174
draw_rectangle(x1 + 1, y1 + totalrows * 32 + 52, rw, rh, 0)
@@ -1257,8 +1257,8 @@ function control_draw() {
12571257
if (theme != 3) {
12581258
layername[startb + b] = draw_text_edit(400 + startb + b, layername[startb + b], x1 + 11, y1 + 10, 72, 14, 1, 0)
12591259
} else {
1260-
if (language != 1) layername[startb + b] = draw_textarea(400 + startb + b, x1 + 9, y1 + 4, 72, 24, string(layername[startb + b]), "The name of this layer.", 3, (0.3 + 0.3 * !fdark) * (acrylic && wpaperexist) + (!acrylic || !wpaperexist), 1)
1261-
else layername[startb + b] = draw_textarea(400 + startb + b, x1 + 9, y1 + 4, 72, 24, string(layername[startb + b]), "本层的名称。", 3, (0.3 + 0.3 * !fdark) * (acrylic && wpaperexist) + (!acrylic || !wpaperexist), 1)
1260+
if (language != 1) layername[startb + b] = draw_textarea(400 + startb + b, x1 + 9, y1 + 4, 72, 24, string(layername[startb + b]), "The name of this layer.", 3, (0.3 + 0.3 * !fdark) * (acrylic && wpaperexist && can_draw_mica) + (!acrylic || !wpaperexist || !can_draw_mica), 1)
1261+
else layername[startb + b] = draw_textarea(400 + startb + b, x1 + 9, y1 + 4, 72, 24, string(layername[startb + b]), "本层的名称。", 3, (0.3 + 0.3 * !fdark) * (acrylic && wpaperexist && can_draw_mica) + (!acrylic || !wpaperexist || !can_draw_mica), 1)
12621262
}
12631263
if (layername[startb + b] = "") {
12641264
draw_set_color(c_gray)

scripts/macros/macros.gml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
function macros() {
22
#macro gm_runtime_version "2022.6.0.23"
3-
#macro version_date "2022.07.07"
3+
#macro version_date "2022.07.16"
44
#macro version "3.10.0-beta.3"
55
#macro is_prerelease 1 // remember to change to 0 in the release!
66
#macro nbs_version 5

scripts/wallpaper_init/wallpaper_init.gml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
function wallpaper_init() {
22
var tempsurf, wpaperwidth;
3+
can_draw_mica = 1
34
ExecuteShell("\"" + data_directory + "wallpaper.bat", true, true)
45
wpaperexist = file_exists(data_directory + "Wallpaper.jpg")
56
if (wpaperexist) {
@@ -8,10 +9,20 @@ function wallpaper_init() {
89
wpaperwidth = (sprite_get_width(wpaper) / sprite_get_height(wpaper)) * 720
910
tempsurf = surface_create(wpaperwidth, 720)
1011
surface_set_target(tempsurf)
11-
draw_sprite_ext(wpaper, 0, 0, 0, 720 / sprite_get_height(wpaper), 720 / sprite_get_height(wpaper), 0, -1, 1)
12+
try {
13+
draw_sprite_ext(wpaper, 0, 0, 0, 720 / sprite_get_height(wpaper), 720 / sprite_get_height(wpaper), 0, -1, 1)
14+
}
15+
catch(e) {
16+
can_draw_mica = 0
17+
}
1218
surface_reset_target()
1319
sprite_delete(wpaper)
14-
wpaper = sprite_create_from_surface(tempsurf, 0, 0, wpaperwidth, 720, 0, 1, 0, 0)
20+
try {
21+
wpaper = sprite_create_from_surface(tempsurf, 0, 0, wpaperwidth, 720, 0, 1, 0, 0)
22+
}
23+
catch(e) {
24+
can_draw_mica = 0
25+
}
1526
surface_free(tempsurf)
1627
wpaperblur = sprite_create_blur_alt(wpaper, 0.25, sprite_get_width(wpaper), sprite_get_height(wpaper), 300, 8, 16)
1728
}

0 commit comments

Comments
 (0)