// Generated at 2022-12-14 10:28:54 (1226ms) for v2.3.7+ /// @lint nullToAny true // Feather disable all #region prototypes globalvar mq_game_frame_button; mq_game_frame_button = [undefined, /* 1:name */undefined, /* 2:custom */undefined, /* 3:icon */undefined, /* 4:subimg */0, /* 5:margin_left */0, /* 6:margin_right */0, /* 7:hover */undefined, /* 8:pressed */undefined, /* 9:enabled */undefined, /* 10:fade */0, /* 11:click */undefined, /* 12:get_width */0, /* 13:update */undefined, /* 14:draw_underlay */undefined, /* 15:draw_icon */undefined]; globalvar mq_gameframe_delayed_item; mq_gameframe_delayed_item = [undefined, /* 1:func */undefined, /* 2:time */0, /* 3:arg0 */undefined, /* 4:arg1 */undefined, /* 5:arg2 */undefined, /* 6:arg3 */undefined]; #endregion #region metatype globalvar gameframe_std_haxe_type_markerValue; gameframe_std_haxe_type_markerValue = []; globalvar mt_game_frame_button; globalvar mt_gameframe_delayed_item; globalvar mt_gameframe_std_haxe_class; (function() { mt_game_frame_button = new gameframe_std_haxe_class(7, "game_frame_button"); mt_gameframe_delayed_item = new gameframe_std_haxe_class(8, "gameframe_delayed_item"); mt_gameframe_std_haxe_class = new gameframe_std_haxe_class(-1, "gameframe_std_haxe_class"); })(); #endregion #region gameframe function gameframe_log(_args1) { // gameframe_log(args:haxe_Rest) if (!gameframe_debug) exit; var _s = "[Gameframe]"; var __g = 0; while (__g < argument_count) { var _arg = argument[__g]; __g++; _s += " " + gameframe_std_Std_stringify(_arg); } show_debug_message(_s); } function gameframe_update() { /// gameframe_update() /// @returns {void} if (!gameframe_is_ready) exit; gameframe_effective_scale = display_get_dpi_x() / 96 / gameframe_dpi_scale; gameframe_mouse_over_frame = false; gameframe_delayed_update(); gameframe_cover_ensure(); if (window_get_fullscreen() || gameframe_isFullscreen_hx) { gameframe_tools_keyctl_reset(); exit; } gameframe_tools_keyctl_update(); if (!gameframe_isMaximized_hx && gameframe_has_native_extension && gameframe_delayed_frame_index > 3 && !gameframe_get_shadow()) gameframe_set_shadow(true); var _mx = (window_mouse_get_x() | 0); var _my = (window_mouse_get_y() | 0); var _gw = window_get_width(); var _gh = window_get_height(); var __borderWidth = (gameframe_isMaximized_hx ? 0 : gameframe_border_width); var __titleHeight = gameframe_caption_get_height(); var __buttons_x = gameframe_button_get_combined_offset(_gw); var __flags = 0; var __titleHit = false; var __hitSomething = true; var _resizePadding = gameframe_resize_padding; if (!point_in_rectangle(_mx, _my, __buttons_x, __borderWidth, _gw - __borderWidth - ((gameframe_isMaximized_hx ? 0 : _resizePadding)), __borderWidth + __titleHeight)) { if (!gameframe_isMaximized_hx && gameframe_can_resize && !point_in_rectangle(_mx, _my, _resizePadding, _resizePadding, _gw - _resizePadding, _gh - _resizePadding)) { if (_mx < _resizePadding) __flags |= 1; if (_my < _resizePadding) __flags |= 2; if (_mx >= _gw - _resizePadding) __flags |= 4; if (_my >= _gh - _resizePadding) __flags |= 8; } else if (point_in_rectangle(_mx, _my, 0, 0, _gw, __titleHeight)) { __titleHit = true; } else __hitSomething = false; } gameframe_mouse_over_frame = __hitSomething; if (gameframe_drag_flags == 0) { var __cursor = gameframe_default_cursor; if (gameframe_can_input && gameframe_can_resize) switch (__flags) { case 1: case 4: __cursor = cr_size_we; break; case 2: case 8: __cursor = cr_size_ns; break; case 3: case 12: __cursor = cr_size_nwse; break; case 6: case 9: __cursor = cr_size_nesw; break; } gameframe_set_window_cursor(__cursor); } gameframe_button_update(__buttons_x, __borderWidth, __titleHeight, _mx, _my); if (gameframe_can_input && mouse_check_button_pressed(1)) { if (__titleHit) { var __now = current_time; if (__now < gameframe_last_title_click_at + gameframe_double_click_time) { if (gameframe_isMaximized_hx) gameframe_restore(); else gameframe_maximize(); } else { gameframe_last_title_click_at = __now; if (gameframe_isMaximized_hx) gameframe_drag_start(32); else gameframe_drag_start(16); } } else if (__flags != 0 && gameframe_can_resize) { gameframe_drag_start(__flags); } } if (gameframe_can_input) { if (mouse_check_button_released(1)) gameframe_drag_stop(); else gameframe_drag_update(); } else if (gameframe_drag_flags != 0) { gameframe_drag_stop(); } } function gameframe_init() { /// gameframe_init() /// @returns {void} gameframe_is_ready = true; gameframe_has_native_extension = gameframe_check_native_extension(); gameframe_double_click_time = (gameframe_has_native_extension ? gameframe_get_double_click_time() : 500); gameframe_init_native(); gameframe_tools_rect_get_window_rect(gameframe_restoreRect_hx); gameframe_button_add_defaults(); gameframe_set_shadow(true); } #endregion #region game_frame_button function game_frame_button_create(_name, _icon, _subimg, _onClick) { /// game_frame_button_create(name:string, icon:sprite, subimg:int, onClick:function) /// @param {string} name /// @param {sprite} icon /// @param {int} subimg /// @param {function} onClick /// @returns {game_frame_button} var _this = [mt_game_frame_button]; array_copy(_this, 1, mq_game_frame_button, 1, 15); /// @typedef {tuple,get_width:function,update:function,draw_underlay:function,draw_icon:function>} game_frame_button _this[@15/* draw_icon */] = game_frame_button_draw_icon_default; _this[@14/* draw_underlay */] = game_frame_button_draw_underlay_default; _this[@13/* update */] = game_frame_button_update_default; _this[@12/* get_width */] = game_frame_button_get_width_default; _this[@10/* fade */] = 0.; _this[@9/* enabled */] = true; _this[@8/* pressed */] = false; _this[@7/* hover */] = false; _this[@6/* margin_right */] = 0; _this[@5/* margin_left */] = 0; _this[@1/* name */] = _name; _this[@3/* icon */] = _icon; _this[@4/* subimg */] = _subimg; _this[@11/* click */] = _onClick; return _this; } function game_frame_button_get_width_default(_b) { // game_frame_button_get_width_default(b:game_frame_button)->int return sprite_get_width(_b[3/* icon */]); } function game_frame_button_update_default(_b) { // game_frame_button_update_default(b:game_frame_button) } function game_frame_button_draw_underlay_default(_b, _x, _y, _width, _height) { // game_frame_button_draw_underlay_default(b:game_frame_button, x:number, y:number, width:number, height:number) var _alpha1; if (_b[9/* enabled */]) { if (_b[8/* pressed */]) { _alpha1 = 0.7; _b[@10/* fade */] = 1; } else { var _dt = delta_time / 1000000; if (_b[7/* hover */]) { if (_b[10/* fade */] < 1) _b[@10/* fade */] = min(_b[10/* fade */] + _dt / gameframe_button_fade_time, 1); } else if (_b[10/* fade */] > 0) { _b[@10/* fade */] = max(_b[10/* fade */] - _dt / gameframe_button_fade_time, 0); } _alpha1 = _b[10/* fade */] * 0.3; } } else _alpha1 = 0.; draw_sprite_stretched_ext(gameframe_spr_pixel, 0, _x, _y, _width, _height, gameframe_blend, gameframe_alpha * _alpha1); } function game_frame_button_draw_icon_default(_b, _x, _y, _width, _height) { // game_frame_button_draw_icon_default(b:game_frame_button, x:number, y:number, width:number, height:number) var _icon = _b[3/* icon */]; var _scale = gameframe_effective_scale; draw_sprite_ext(_icon, _b[4/* subimg */], (_x + ((_width - sprite_get_width(_icon) * _scale) div 2) + (sprite_get_xoffset(_icon) * _scale | 0)), _y + ((_height - sprite_get_height(_icon) * _scale) div 2) + (sprite_get_yoffset(_icon) * _scale | 0), _scale, _scale, 0, gameframe_blend, gameframe_alpha * ((_b[9/* enabled */] ? 1 : 0.3))); } function game_frame_button_set_name(_this, _value) { /// game_frame_button_set_name(this:game_frame_button, value:string) /// @param {game_frame_button} this /// @param {string} value /// @returns {void} _this[@1/* name */] = _value; } function game_frame_button_get_name(_this) { /// game_frame_button_get_name(this:game_frame_button)->string /// @param {game_frame_button} this /// @returns {string} return _this[1/* name */]; } function game_frame_button_set_custom(_this, _value) { /// game_frame_button_set_custom(this:game_frame_button, value:any) /// @param {game_frame_button} this /// @param {any} value /// @returns {void} _this[@2/* custom */] = _value; } function game_frame_button_get_custom(_this) { /// game_frame_button_get_custom(this:game_frame_button)->any /// @param {game_frame_button} this /// @returns {any} return _this[2/* custom */]; } function game_frame_button_set_icon(_this, _value) { /// game_frame_button_set_icon(this:game_frame_button, value:sprite) /// @param {game_frame_button} this /// @param {sprite} value /// @returns {void} _this[@3/* icon */] = _value; } function game_frame_button_get_icon(_this) { /// game_frame_button_get_icon(this:game_frame_button)->sprite /// @param {game_frame_button} this /// @returns {sprite} return _this[3/* icon */]; } function game_frame_button_set_subimg(_this, _value) { /// game_frame_button_set_subimg(this:game_frame_button, value:int) /// @param {game_frame_button} this /// @param {int} value /// @returns {void} _this[@4/* subimg */] = _value; } function game_frame_button_get_subimg(_this) { /// game_frame_button_get_subimg(this:game_frame_button)->int /// @param {game_frame_button} this /// @returns {int} return _this[4/* subimg */]; } function game_frame_button_set_margin_left(_this, _value) { /// game_frame_button_set_margin_left(this:game_frame_button, value:int) /// @param {game_frame_button} this /// @param {int} value /// @returns {void} _this[@5/* margin_left */] = _value; } function game_frame_button_get_margin_left(_this) { /// game_frame_button_get_margin_left(this:game_frame_button)->int /// @param {game_frame_button} this /// @returns {int} return _this[5/* margin_left */]; } function game_frame_button_set_margin_right(_this, _value) { /// game_frame_button_set_margin_right(this:game_frame_button, value:int) /// @param {game_frame_button} this /// @param {int} value /// @returns {void} _this[@6/* margin_right */] = _value; } function game_frame_button_get_margin_right(_this) { /// game_frame_button_get_margin_right(this:game_frame_button)->int /// @param {game_frame_button} this /// @returns {int} return _this[6/* margin_right */]; } function game_frame_button_set_hover(_this, _value) { /// game_frame_button_set_hover(this:game_frame_button, value:bool) /// @param {game_frame_button} this /// @param {bool} value /// @returns {void} _this[@7/* hover */] = _value; } function game_frame_button_get_hover(_this) { /// game_frame_button_get_hover(this:game_frame_button)->bool /// @param {game_frame_button} this /// @returns {bool} return _this[7/* hover */]; } function game_frame_button_set_pressed(_this, _value) { /// game_frame_button_set_pressed(this:game_frame_button, value:bool) /// @param {game_frame_button} this /// @param {bool} value /// @returns {void} _this[@8/* pressed */] = _value; } function game_frame_button_get_pressed(_this) { /// game_frame_button_get_pressed(this:game_frame_button)->bool /// @param {game_frame_button} this /// @returns {bool} return _this[8/* pressed */]; } function game_frame_button_set_enabled(_this, _value) { /// game_frame_button_set_enabled(this:game_frame_button, value:bool) /// @param {game_frame_button} this /// @param {bool} value /// @returns {void} _this[@9/* enabled */] = _value; } function game_frame_button_get_enabled(_this) { /// game_frame_button_get_enabled(this:game_frame_button)->bool /// @param {game_frame_button} this /// @returns {bool} return _this[9/* enabled */]; } function game_frame_button_set_fade(_this, _value) { /// game_frame_button_set_fade(this:game_frame_button, value:number) /// @param {game_frame_button} this /// @param {number} value /// @returns {void} _this[@10/* fade */] = _value; } function game_frame_button_get_fade(_this) { /// game_frame_button_get_fade(this:game_frame_button)->number /// @param {game_frame_button} this /// @returns {number} return _this[10/* fade */]; } function game_frame_button_set_click(_this, _value) { /// game_frame_button_set_click(this:game_frame_button, value:function) /// @param {game_frame_button} this /// @param {function} value /// @returns {void} _this[@11/* click */] = _value; } function game_frame_button_get_click(_this) { /// game_frame_button_get_click(this:game_frame_button)->function /// @param {game_frame_button} this /// @returns {function} return _this[11/* click */]; } function game_frame_button_set_get_width(_this, _value) { /// game_frame_button_set_get_width(this:game_frame_button, value:function) /// @param {game_frame_button} this /// @param {function} value /// @returns {void} _this[@12/* get_width */] = _value; } function game_frame_button_get_get_width(_this) { /// game_frame_button_get_get_width(this:game_frame_button)->function /// @param {game_frame_button} this /// @returns {function} return _this[12/* get_width */]; } function game_frame_button_set_update(_this, _value) { /// game_frame_button_set_update(this:game_frame_button, value:function) /// @param {game_frame_button} this /// @param {function} value /// @returns {void} _this[@13/* update */] = _value; } function game_frame_button_get_update(_this) { /// game_frame_button_get_update(this:game_frame_button)->function /// @param {game_frame_button} this /// @returns {function} return _this[13/* update */]; } function game_frame_button_set_draw_underlay(_this, _value) { /// game_frame_button_set_draw_underlay(this:game_frame_button, value:function) /// @param {game_frame_button} this /// @param {function} value /// @returns {void} _this[@14/* draw_underlay */] = _value; } function game_frame_button_get_draw_underlay(_this) { /// game_frame_button_get_draw_underlay(this:game_frame_button)->function /// @param {game_frame_button} this /// @returns {function} return _this[14/* draw_underlay */]; } function game_frame_button_set_draw_icon(_this, _value) { /// game_frame_button_set_draw_icon(this:game_frame_button, value:function) /// @param {game_frame_button} this /// @param {function} value /// @returns {void} _this[@15/* draw_icon */] = _value; } function game_frame_button_get_draw_icon(_this) { /// game_frame_button_get_draw_icon(this:game_frame_button)->function /// @param {game_frame_button} this /// @returns {function} return _this[15/* draw_icon */]; } #endregion #region gameframe_button function gameframe_button_get_combined_width() { /// gameframe_button_get_combined_width()->int /// @returns {int} var _w = 0; var __g = 0; var __g1 = gameframe_button_array; while (__g < array_length(__g1)) { var _b = __g1[__g]; __g++; _w += _b[5/* margin_left */] + _b[12/* get_width */](_b) + _b[6/* margin_right */]; } return ceil(_w * gameframe_effective_scale); } function gameframe_button_get_combined_offset(_windowWidth) { /// gameframe_button_get_combined_offset(windowWidth:int)->int /// @param {int} windowWidth /// @returns {int} return _windowWidth - ((gameframe_isMaximized_hx ? 0 : gameframe_border_width)) - gameframe_button_get_combined_width(); } function gameframe_button_reset() { /// gameframe_button_reset() /// @returns {void} var __g = 0; var __g1 = gameframe_button_array; while (__g < array_length(__g1)) { var _b = __g1[__g]; __g++; _b[@7/* hover */] = false; _b[@10/* fade */] = 0.; _b[@8/* pressed */] = false; } } function gameframe_button_update(_x, _y, _height, _mx, _my) { // gameframe_button_update(x:number, y:number, height:int, mx:int, my:int) var _over_row = _mx >= _y && _my < _y + _height; if (_over_row) { if (gameframe_has_native_extension) { _over_row = gameframe_mouse_in_window(); } else { var _wx = window_get_x(); var _wy = window_get_y(); var _dmx = display_mouse_get_x(); var _dmy = display_mouse_get_y(); _over_row = _dmx >= _wx && _dmy >= _wy && _dmx < _wx + window_get_width() && _dmy < _wy + window_get_height(); } } if (gameframe_button_wait_for_movement) { if (_mx != gameframe_button_wait_for_movement_x || _my != gameframe_button_wait_for_movement_y) gameframe_button_wait_for_movement = false; else _over_row = false; } var _dpiScale = gameframe_effective_scale; var _pressed = mouse_check_button_pressed(1); var _released = mouse_check_button_released(1); var _disable = gameframe_drag_flags != 0 || !gameframe_can_input; var _i = 0; for (var __g1 = array_length(gameframe_button_array); _i < __g1; _i++) { var _button = gameframe_button_array[_i]; _button[13/* update */](_button); _x += _button[5/* margin_left */] * _dpiScale; var _width = _button[12/* get_width */](_button) * _dpiScale; if (_disable || !_button[9/* enabled */]) { _button[@7/* hover */] = false; _button[@8/* pressed */] = false; } else if (_over_row && _mx >= _x && _mx < _x + _width) { _button[@7/* hover */] = true; if (_pressed) _button[@8/* pressed */] = true; } else _button[@7/* hover */] = false; if (_released && _button[8/* pressed */] && _button[7/* hover */]) { _button[@8/* pressed */] = false; _button[11/* click */](_button); } _x += _width + _button[6/* margin_right */] * _dpiScale; } } function gameframe_button_draw(_x, _y, _height) { // gameframe_button_draw(x:number, y:number, height:int) var _dpiScale = gameframe_effective_scale; var _i = 0; for (var __g1 = array_length(gameframe_button_array); _i < __g1; _i++) { var _button = gameframe_button_array[_i]; _x += _button[5/* margin_left */] * _dpiScale; var _width = _button[12/* get_width */](_button) * _dpiScale; _button[14/* draw_underlay */](_button, _x, _y, _width, _height); _button[15/* draw_icon */](_button, _x, _y, _width, _height); _x += _width + _button[6/* margin_right */] * _dpiScale; } } function gameframe_button_add_defaults() { // gameframe_button_add_defaults() gameframe_button_array = []; var _minimize = game_frame_button_create("minimize", gameframe_spr_buttons, 0, function(_button) { gameframe_minimize() }); if (!gameframe_has_native_extension) _minimize[@9/* enabled */] = false; array_push(gameframe_button_array, _minimize); var _maxrest = game_frame_button_create("maxrest", gameframe_spr_buttons, 1, function(_button) { if (gameframe_isMaximized_hx) gameframe_restore(); else gameframe_maximize(); gameframe_button_reset(); }); _maxrest[@13/* update */] = function(_b) { _b[@4/* subimg */] = (gameframe_isMaximized_hx ? 2 : 1); _b[@9/* enabled */] = gameframe_can_resize; } array_push(gameframe_button_array, _maxrest); var _close = game_frame_button_create("close", gameframe_spr_buttons, 3, function(__) { game_end() }); _close[@14/* draw_underlay */] = function(_b, __x, __y, __width, __height) { var __alpha = 0.; if (_b[8/* pressed */]) { __alpha = 0.7; _b[@10/* fade */] = 1; } else { var _dt = delta_time / 1000000; if (_b[7/* hover */]) { if (_b[10/* fade */] < 1) { _b[@10/* fade */] = max(_b[10/* fade */], 0.5); _b[@10/* fade */] = min(_b[10/* fade */] + _dt / gameframe_button_fade_time, 1); } } else if (_b[10/* fade */] > 0) { _b[@10/* fade */] = max(_b[10/* fade */] - _dt / gameframe_button_fade_time, 0); } __alpha = gameframe_alpha * _b[10/* fade */]; } draw_sprite_stretched_ext(gameframe_spr_pixel, 0, __x, __y, __width, __height, 2298344, __alpha); } array_push(gameframe_button_array, _close); } #endregion #region gameframe_tools_rect function gameframe_tools_rect__new(_x, _y, _w, _h) { // gameframe_tools_rect__new(...:int)->gameframe_tools_rect if (_x == undefined) _x = 0; if (_y == undefined) _y = 0; if (_w == undefined) _w = 0; if (_h == undefined) _h = 0; if (false) show_debug_message(argument[3]); return [/* x: */_x, /* y: */_y, /* width: */_w, /* height: */_h]; } function gameframe_tools_rect_get_window_rect(_this1) { // gameframe_tools_rect_get_window_rect(this:tools_GfRectImpl) _this1[@0/* x */] = window_get_x(); _this1[@1/* y */] = window_get_y(); _this1[@2/* width */] = window_get_width(); _this1[@3/* height */] = window_get_height(); } function gameframe_tools_rect_set_window_rect(_this1) { // gameframe_tools_rect_set_window_rect(this:tools_GfRectImpl) window_set_rectangle(_this1[0/* x */], _this1[1/* y */], _this1[2/* width */], _this1[3/* height */]); } function gameframe_tools_rect_equals(_this1, _o) { // gameframe_tools_rect_equals(this:tools_GfRectImpl, o:gameframe_tools_rect)->bool return _this1[0/* x */] == _o[0/* x */] && _this1[1/* y */] == _o[1/* y */] && _this1[2/* width */] == _o[2/* width */] && _this1[3/* height */] == _o[3/* height */]; } function gameframe_tools_rect_set_to(_this1, _o) { // gameframe_tools_rect_set_to(this:tools_GfRectImpl, o:gameframe_tools_rect) _this1[@0/* x */] = _o[0/* x */]; _this1[@1/* y */] = _o[1/* y */]; _this1[@2/* width */] = _o[2/* width */]; _this1[@3/* height */] = _o[3/* height */]; } #endregion #region gameframe function gameframe_minimize() { /// gameframe_minimize() /// @returns {void} if (gameframe_is_natively_minimized()) exit; gameframe_button_reset(); gameframe_delayed_call_impl(function() { gameframe_button_wait_for_movement = true; gameframe_button_wait_for_movement_x = window_mouse_get_x(); gameframe_button_wait_for_movement_y = window_mouse_get_y(); gameframe_syscommand(61472); }, 1, undefined, undefined, undefined, undefined); } function gameframe_minimise() { // gameframe_minimise() if (!gameframe_is_natively_minimized()) { gameframe_button_reset(); gameframe_delayed_call_impl(function() { gameframe_button_wait_for_movement = true; gameframe_button_wait_for_movement_x = window_mouse_get_x(); gameframe_button_wait_for_movement_y = window_mouse_get_y(); gameframe_syscommand(61472); }, 1, undefined, undefined, undefined, undefined); } } function gameframe_is_minimized() { /// gameframe_is_minimized()->bool /// @returns {bool} return gameframe_is_natively_minimized(); } function gameframe_is_minimised() { // gameframe_is_minimised()->bool return gameframe_is_natively_minimized(); } function gameframe_maximize() { /// gameframe_maximize() /// @returns {void} if (gameframe_isMaximized_hx || gameframe_isFullscreen_hx || window_get_fullscreen()) exit; gameframe_isMaximized_hx = true; gameframe_store_rect(); gameframe_maximize_1(); } function gameframe_maximise() { // gameframe_maximise() if (!(gameframe_isMaximized_hx || gameframe_isFullscreen_hx || window_get_fullscreen())) { gameframe_isMaximized_hx = true; gameframe_store_rect(); gameframe_maximize_1(); } } function gameframe_is_maximized() { /// gameframe_is_maximized()->bool /// @returns {bool} return gameframe_isMaximized_hx; } function gameframe_is_maximised() { // gameframe_is_maximised()->bool return gameframe_isMaximized_hx; } function gameframe_maximize_1() { // gameframe_maximize_1() var __work = gameframe_tools_mon_get_active()[1/* workspace */]; if (gameframe_debug) gameframe_log("maximize: ", __work); gameframe_tools_rect_set_window_rect(__work); gameframe_set_shadow(false); } function gameframe_store_rect() { // gameframe_store_rect() gameframe_tools_rect_get_window_rect(gameframe_restoreRect_hx); if (gameframe_debug) gameframe_log("storeRect: ", gameframe_restoreRect_hx); } function gameframe_restore(__force) { /// gameframe_restore(_force:bool = false) /// @param {bool} [_force=false] /// @returns {void} if (__force == undefined) __force = false; if (false) show_debug_message(argument[0]); if (window_get_fullscreen()) { window_set_fullscreen(false); gameframe_delayed_call_impl(function() { gameframe_restore() }, 1, undefined, undefined, undefined, undefined); exit; } if (!__force && !gameframe_isMaximized_hx && !gameframe_isFullscreen_hx) exit; gameframe_isMaximized_hx = false; gameframe_isFullscreen_hx = false; var __rect = gameframe_restoreRect_hx; if (gameframe_debug) gameframe_log("restore: ", __rect); gameframe_tools_rect_set_window_rect(__rect); gameframe_set_shadow(true); } function gameframe_set_fullscreen(_mode) { /// gameframe_set_fullscreen(mode:int) /// @param {int} mode /// @returns {void} gameframe_set_fullscreen_1(_mode); } function gameframe_get_fullscreen() { /// gameframe_get_fullscreen()->int /// @returns {int} if (window_get_fullscreen()) return 1; if (gameframe_isFullscreen_hx) return 2; else return 0; } function gameframe_is_fullscreen_window() { /// gameframe_is_fullscreen_window()->bool /// @returns {bool} return !window_get_fullscreen() && gameframe_isFullscreen_hx; } function gameframe_set_fullscreen_1(__mode, __wasFullscreen) { // gameframe_set_fullscreen_1(_mode:int, _wasFullscreen:bool = false) if (__wasFullscreen == undefined) __wasFullscreen = false; if (false) show_debug_message(argument[1]); if (gameframe_debug) gameframe_log("setFullscreen(mode:", __mode, ", wasfs:", __wasFullscreen, ")"); if (__mode == 1 || __mode == 2) { gameframe_button_reset(); gameframe_drag_stop(); } switch (__mode) { case 1: if (window_get_fullscreen()) exit; if (gameframe_isFullscreen_hx) { gameframe_restore(); gameframe_delayed_call_impl(function() { gameframe_set_fullscreen_1(1) }, 1, undefined, undefined, undefined, undefined); exit; } else gameframe_store_rect(); window_set_fullscreen(true); break; case 2: if (window_get_fullscreen()) { window_set_fullscreen(false); gameframe_delayed_call_impl(function() { gameframe_set_fullscreen_1(2, true) }, 10, undefined, undefined, undefined, undefined); exit; } if (gameframe_isFullscreen_hx) exit; gameframe_isFullscreen_hx = true; if (!gameframe_isMaximized_hx && !__wasFullscreen) gameframe_store_rect(); gameframe_tools_rect_set_window_rect(gameframe_tools_mon_get_active()[0/* screen */]); gameframe_set_shadow(false); break; default: if (window_get_fullscreen() && gameframe_isFullscreen_hx) { window_set_fullscreen(false); gameframe_delayed_call_impl(function() { gameframe_set_fullscreen_1(0) }, 1, undefined, undefined, undefined, undefined); exit; } if (window_get_fullscreen()) { gameframe_restore(); } else if (gameframe_isMaximized_hx) { gameframe_isFullscreen_hx = false; gameframe_maximize_1(); } else gameframe_restore(); } } function gameframe_set_window_cursor(_cr1) { // gameframe_set_window_cursor(cr:window_cursor) gameframe_current_cursor = _cr1; if (gameframe_set_cursor) { if (window_get_cursor() != _cr1) window_set_cursor(_cr1); } } function gameframe_get_border_width() { // gameframe_get_border_width()->int if (gameframe_isMaximized_hx) return 0; else return gameframe_border_width; } function gameframe_get_drag_flags() { /// gameframe_get_drag_flags()->int /// @returns {int} return gameframe_drag_flags; } #endregion #region gameframe_caption function gameframe_caption_get_height() { /// gameframe_caption_get_height()->int /// @returns {int} var _h = (gameframe_isMaximized_hx ? gameframe_caption_height_maximized : gameframe_caption_height_normal); if (_h > 0) return (_h | 0); return round(-_h * sprite_get_height(gameframe_spr_caption) * gameframe_effective_scale); } function gameframe_caption_get_overlap() { /// gameframe_caption_get_overlap()->number /// @returns {number} if (window_get_fullscreen() || gameframe_isFullscreen_hx) return 0.; var _h = gameframe_caption_get_height(); var _rect = application_get_position(); return max(0, _h - _rect[1]) / ((_rect[2] - _rect[0]) / surface_get_width(application_surface)); } function gameframe_caption_draw_border_default(__x, __y, __width, __height) { // gameframe_caption_draw_border_default(_x:int, _y:int, _width:int, _height:int) draw_sprite_stretched_ext(gameframe_spr_border, (window_has_focus() ? 1 : 0), __x, __y, __width, __height, gameframe_blend, gameframe_alpha); } function gameframe_caption_draw_caption_rect_default(__x, __y, __width, __height, __buttons_x) { // gameframe_caption_draw_caption_rect_default(_x:int, _y:int, _width:int, _height:int, _buttons_x:int) draw_sprite_stretched_ext(gameframe_spr_caption, (window_has_focus() ? 1 : 0), __x, __y, __width, __height, gameframe_blend, gameframe_alpha * gameframe_caption_alpha); } function gameframe_caption_draw_caption_text_default(__x, __y, __width, __height) { // gameframe_caption_draw_caption_text_default(_x:number, _y:number, _width:number, _height:int) var _dpiScale = gameframe_effective_scale; var __right = __x + __width; __x += gameframe_caption_margin * _dpiScale; var _icon = gameframe_caption_icon; if (_icon != -1) { draw_sprite_ext(_icon, -1, (__x + sprite_get_xoffset(_icon) * _dpiScale | 0), __y + ((__height - sprite_get_height(_icon) * _dpiScale) div 2) + sprite_get_yoffset(_icon) * _dpiScale, _dpiScale, _dpiScale, 0, 16777215, gameframe_caption_alpha * gameframe_alpha); __x += (sprite_get_width(_icon) + gameframe_caption_icon_margin) * _dpiScale; } var _text = gameframe_caption_text; if (_text == "") exit; var __newFont = gameframe_caption_font; var __h = draw_get_halign(); var __v = draw_get_valign(); var __oldFont; if (__newFont != -1) { __oldFont = draw_get_font(); draw_set_font(__newFont); } else __oldFont = -1; draw_set_halign(gameframe_caption_text_align); draw_set_valign(0); var __alpha = draw_get_alpha(); var __textWidth = __right - __x; draw_set_alpha((gameframe_alpha * gameframe_caption_alpha)); draw_text_ext_transformed((__x + ((gameframe_caption_text_align * __textWidth) div 2)), __y + ((__height - string_height_ext(_text, -1, __textWidth) * _dpiScale) div 2), _text, -1, __textWidth, _dpiScale, _dpiScale, 0); draw_set_alpha(__alpha); if (__newFont != -1) draw_set_font(__oldFont); draw_set_halign(__h); draw_set_valign(__v); } #endregion #region gameframe_cover function gameframe_cover_ensure() { // gameframe_cover_ensure() var __just_changed = gameframe_cover_check_for_success; if (__just_changed) gameframe_cover_check_for_success = false; var __target_rect; if (window_get_fullscreen()) { gameframe_cover_can_ignore = false; exit; } else if (gameframe_isFullscreen_hx) { __target_rect = gameframe_tools_mon_get_active()[0/* screen */]; } else if (gameframe_isMaximized_hx) { __target_rect = gameframe_tools_mon_get_active()[1/* workspace */]; } else { gameframe_cover_can_ignore = false; exit; } gameframe_tools_rect_get_window_rect(gameframe_cover_curr_rect); if (!gameframe_tools_rect_equals(gameframe_cover_curr_rect, __target_rect)) { if (__just_changed) { gameframe_cover_can_ignore = true; gameframe_tools_rect_set_to(gameframe_cover_ignore_rect, __target_rect); if (gameframe_debug) gameframe_log("[cover] Resize failed - ignoring"); exit; } if (gameframe_cover_can_ignore && gameframe_tools_rect_equals(__target_rect, gameframe_cover_ignore_rect)) exit; if (gameframe_debug) gameframe_log("[cover] Adjusting window rectangle to", __target_rect); gameframe_tools_rect_set_window_rect(__target_rect); gameframe_cover_check_for_success = true; } } #endregion #region gameframe_delayed function gameframe_delayed_call_impl(_func, _delay, _arg0, _arg1, _arg2, _arg3) { // gameframe_delayed_call_impl(func:any, delay:int, arg:any, arg:any, arg:any, arg:any) var _item; if (ds_stack_empty(gameframe_delayed_pool)) _item = gameframe_delayed_item_create(); else _item = ds_stack_pop(gameframe_delayed_pool); _item[@1/* func */] = _func; _item[@2/* time */] = gameframe_delayed_frame_index + _delay; _item[@3/* arg0 */] = _arg0; _item[@4/* arg1 */] = _arg1; _item[@5/* arg2 */] = _arg2; _item[@6/* arg3 */] = _arg3; ds_queue_enqueue(gameframe_delayed_queue, _item); } function gameframe_delayed_update() { // gameframe_delayed_update() gameframe_delayed_frame_index += 1; var _f; while (!ds_queue_empty(gameframe_delayed_queue)) { var _head = ds_queue_head(gameframe_delayed_queue); if (_head[2/* time */] > gameframe_delayed_frame_index) break; ds_queue_dequeue(gameframe_delayed_queue); _f = _head[1/* func */]; _f(_head[3/* arg0 */], _head[4/* arg1 */], _head[5/* arg2 */], _head[6/* arg3 */]); _head[@1/* func */] = undefined; _head[@3/* arg0 */] = undefined; _head[@4/* arg1 */] = undefined; _head[@5/* arg2 */] = undefined; _head[@6/* arg3 */] = undefined; ds_stack_push(gameframe_delayed_pool, _head); } } #endregion #region gameframe_delayed_item function gameframe_delayed_item_create() { // gameframe_delayed_item_create() var _this = [mt_gameframe_delayed_item]; array_copy(_this, 1, mq_gameframe_delayed_item, 1, 6); /// @typedef {tuple} gameframe_delayed_item return _this; } #endregion #region gameframe_drag function gameframe_drag_start(__flags) { // gameframe_drag_start(_flags:int) gameframe_drag_flags = __flags; gameframe_drag_mx = (display_mouse_get_x() | 0); gameframe_drag_my = (display_mouse_get_y() | 0); gameframe_drag_left = window_get_x(); gameframe_drag_top = window_get_y(); gameframe_drag_right = gameframe_drag_left + window_get_width(); gameframe_drag_bottom = gameframe_drag_top + window_get_height(); } function gameframe_drag_stop() { // gameframe_drag_stop() gameframe_drag_flags = 0; } function gameframe_drag_set_rect(_x, _y, _w, _h) { // gameframe_drag_set_rect(x:int, y:int, w:int, h:int) window_set_rectangle(_x, _y, _w, _h); } function gameframe_drag_update() { // gameframe_drag_update() if (gameframe_drag_flags == 0) exit; var __mx = (display_mouse_get_x() | 0); var __my = (display_mouse_get_y() | 0); switch (gameframe_drag_flags) { case 16: window_set_position(__mx - (gameframe_drag_mx - gameframe_drag_left), __my - (gameframe_drag_my - gameframe_drag_top)); break; case 32: if (point_distance(__mx, __my, gameframe_drag_mx, gameframe_drag_my) > 5) { var __x; var __y = gameframe_drag_my - gameframe_drag_top; if (gameframe_drag_mx - gameframe_drag_left < (gameframe_drag_right - gameframe_drag_left) / 2) __x = min(gameframe_drag_mx - gameframe_drag_left, (gameframe_restoreRect_hx[2/* width */] >> 1)); else __x = max(gameframe_restoreRect_hx[2/* width */] + gameframe_drag_mx - gameframe_drag_right, (gameframe_restoreRect_hx[2/* width */] >> 1)); gameframe_isMaximized_hx = false; window_set_rectangle(__mx - __x, __my - __y, gameframe_restoreRect_hx[2/* width */], gameframe_restoreRect_hx[3/* height */]); gameframe_drag_start(16); } break; case 1: var __x = __mx - (gameframe_drag_mx - gameframe_drag_left); window_set_rectangle(__x, gameframe_drag_top, gameframe_drag_right - __x, gameframe_drag_bottom - gameframe_drag_top); break; case 2: var __y = __my - (gameframe_drag_my - gameframe_drag_top); window_set_rectangle(gameframe_drag_left, __y, gameframe_drag_right - gameframe_drag_left, gameframe_drag_bottom - __y); break; case 4: window_set_rectangle(gameframe_drag_left, gameframe_drag_top, gameframe_drag_right - gameframe_drag_left - gameframe_drag_mx + __mx, gameframe_drag_bottom - gameframe_drag_top); break; case 8: window_set_rectangle(gameframe_drag_left, gameframe_drag_top, gameframe_drag_right - gameframe_drag_left, gameframe_drag_bottom - gameframe_drag_top - gameframe_drag_my + __my); break; case 3: var __x = __mx - (gameframe_drag_mx - gameframe_drag_left); var __y = __my - (gameframe_drag_my - gameframe_drag_top); window_set_rectangle(__x, __y, gameframe_drag_right - __x, gameframe_drag_bottom - __y); break; case 9: var __x = __mx - (gameframe_drag_mx - gameframe_drag_left); window_set_rectangle(__x, gameframe_drag_top, gameframe_drag_right - __x, gameframe_drag_bottom - gameframe_drag_top - gameframe_drag_my + __my); break; case 6: var __y = __my - (gameframe_drag_my - gameframe_drag_top); window_set_rectangle(gameframe_drag_left, __y, gameframe_drag_right - gameframe_drag_left - gameframe_drag_mx + __mx, gameframe_drag_bottom - __y); break; case 12: window_set_rectangle(gameframe_drag_left, gameframe_drag_top, gameframe_drag_right - gameframe_drag_left - gameframe_drag_mx + __mx, gameframe_drag_bottom - gameframe_drag_top - gameframe_drag_my + __my); break; } } #endregion #region gameframe.tools.keyctl function gameframe_tools_keyctl_create_key(_keyCode) { // gameframe_tools_keyctl_create_key(keyCode:gml_input_KeyCode)->GfKeyboardKey return [/* keyCode: */_keyCode, /* down: */false, /* pressed: */false]; } function gameframe_tools_keyctl_update_key(_key) { // gameframe_tools_keyctl_update_key(key:GfKeyboardKey) var _down0 = _key[1/* down */]; var _down1 = keyboard_check_direct(_key[0/* keyCode */]) != 0; _key[@2/* pressed */] = !_down0 && _down1; _key[@1/* down */] = _down1; } function gameframe_tools_keyctl_reset() { // gameframe_tools_keyctl_reset() var _i = 0; for (var __g1 = array_length(gameframe_tools_keyctl_keys); _i < __g1; _i++) { gameframe_tools_keyctl_keys[_i][@1/* down */] = false; } } function gameframe_tools_keyctl_update() { // gameframe_tools_keyctl_update() if (!(window_has_focus() && (keyboard_check_direct(91) != 0 || keyboard_check_direct(92) != 0))) { gameframe_tools_keyctl_reset(); exit; } var _i = 0; for (var __g1 = array_length(gameframe_tools_keyctl_keys); _i < __g1; _i++) { gameframe_tools_keyctl_update_key(gameframe_tools_keyctl_keys[_i]); } if (gameframe_tools_keyctl_up[2/* pressed */]) { if (gameframe_can_resize) gameframe_maximize(); } else if (gameframe_tools_keyctl_down[2/* pressed */]) { if (gameframe_isMaximized_hx) { if (gameframe_can_resize) gameframe_restore(); } else gameframe_minimize(); } } #endregion #region gameframe_draw function gameframe_draw() { /// gameframe_draw() /// @returns {void} if (!gameframe_is_ready) exit; if (window_get_fullscreen() || gameframe_isFullscreen_hx) exit; var _gw = window_get_width(); var _gh = window_get_height(); __display_set_gui_maximise_base(browser_width / _gw, browser_height / _gh, _gw % 2 / -2, _gh % 2 / -2); var __borderWidth = (gameframe_isMaximized_hx ? 0 : gameframe_border_width); var __titlebarHeight = gameframe_caption_get_height(); var __buttons_x = gameframe_button_get_combined_offset(_gw); if (!gameframe_isMaximized_hx) gameframe_caption_draw_border(0, 0, _gw, _gh); gameframe_caption_draw_background(__borderWidth, __borderWidth, _gw - __borderWidth * 2, __titlebarHeight, __buttons_x); gameframe_caption_draw_text(__borderWidth, __borderWidth, __buttons_x - __borderWidth, __titlebarHeight); gameframe_button_draw(__buttons_x, __borderWidth, __titlebarHeight); __display_gui_restore(); } #endregion #region gameframe_std.Std function gameframe_std_Std_stringify(_value) { // gameframe_std_Std_stringify(value:any)->string if (_value == undefined) return "null"; if (is_string(_value)) return _value; var _n, _i, _s; if (is_struct(_value)) { var _e = _value[$"__enum__"]; if (_e == undefined) return string(_value); var _ects = _e.constructors; if (_ects != undefined) { _i = _value.__enumIndex__; if (_i >= 0 && _i < array_length(_ects)) _s = _ects[_i]; else _s = "?"; } else { _s = instanceof(_value); if (string_copy(_s, 1, 3) == "mc_") _s = string_delete(_s, 1, 3); _n = string_length(_e.name); if (string_copy(_s, 1, _n) == _e.name) _s = string_delete(_s, 1, _n + 1); } _s += "("; var _fields = _value.__enumParams__; _n = array_length(_fields); for (_i = -1; ++_i < _n; _s += gameframe_std_Std_stringify(_value[$ _fields[_i]])) { if (_i > 0) _s += ", "; } return _s + ")"; } if (is_real(_value)) { _s = string_format(_value, 0, 16); if (os_browser != browser_not_a_browser) { _n = string_length(_s); _i = _n; while (_i > 0) { switch (string_ord_at(_s, _i)) { case 48: _i--; continue; case 46: _i--; break; } break; } } else { _n = string_byte_length(_s); _i = _n; while (_i > 0) { switch (string_byte_at(_s, _i)) { case 48: _i--; continue; case 46: _i--; break; } break; } } return string_copy(_s, 1, _i); } return string(_value); } #endregion #region gameframe_std.haxe.class function gameframe_std_haxe_class(_id, _name) constructor { // gameframe_std_haxe_class(id:int, name:string) static superClass = undefined; /// @is {haxe_class} static marker = undefined; /// @is {any} static index = undefined; /// @is {int} static name = undefined; /// @is {string} self.superClass = undefined; self.marker = gameframe_std_haxe_type_markerValue; self.index = _id; self.name = _name; static __class__ = "class"; } #endregion #region gameframe_tools_mon function gameframe_tools_mon_get_active() { // gameframe_tools_mon_get_active()->tools_GfMonInfo var __list = gameframe_tools_mon_get_active_list; if (__list == undefined) { __list = ds_list_create(); gameframe_tools_mon_get_active_list = __list; } var __count = gameframe_get_monitors(__list); var __cx1 = window_get_x() + (window_get_width() div 2); var __cy1 = window_get_y() + (window_get_height() div 2); var _i = 0; for (var __g1 = __count; _i < __g1; _i++) { var __item = __list[|_i]; var __mntr = __item[0/* screen */]; if (__cx1 >= __mntr[0/* x */] && __cy1 >= __mntr[1/* y */] && __cx1 < __mntr[0/* x */] + __mntr[2/* width */] && __cy1 < __mntr[1/* y */] + __mntr[3/* height */]) return __item; } var __item = __list[|0]; if (__item == undefined) { __item = gameframe_tools_mon_dummy; if (__item == undefined) { __item = [/* screen: */gameframe_tools_rect__new(0, 0, display_get_width(), display_get_height()), /* workspace: */gameframe_tools_rect__new(0, 0, display_get_width(), display_get_height() - 40), /* flags: */0]; gameframe_tools_mon_dummy = __item; } __list[|0] = __item; } return __item; } #endregion // gameframe: globalvar gameframe_is_ready; /// @is {bool} gameframe_is_ready = false; globalvar gameframe_double_click_time; /// @is {number} globalvar gameframe_last_title_click_at; /// @is {int} gameframe_last_title_click_at = -5000; // gameframe_button: globalvar gameframe_button_array; /// @is {array} gameframe_button_array = []; globalvar gameframe_button_fade_time; /// @is {number} gameframe_button_fade_time = 0.2; globalvar gameframe_button_wait_for_movement; /// @is {bool} gameframe_button_wait_for_movement = false; globalvar gameframe_button_wait_for_movement_x; /// @is {number} gameframe_button_wait_for_movement_x = 0.; globalvar gameframe_button_wait_for_movement_y; /// @is {number} gameframe_button_wait_for_movement_y = 0.; // gameframe: globalvar gameframe_debug; /// @is {bool} gameframe_debug = false; globalvar gameframe_blend; /// @is {int} gameframe_blend = 16777215; globalvar gameframe_alpha; /// @is {number} gameframe_alpha = 1.0; globalvar gameframe_can_input; /// @is {bool} gameframe_can_input = true; globalvar gameframe_can_resize; /// @is {bool} gameframe_can_resize = true; globalvar gameframe_resize_padding; /// @is {int} gameframe_resize_padding = 6; globalvar gameframe_border_width; /// @is {int} gameframe_border_width = 2; globalvar gameframe_spr_border; /// @is {sprite} gameframe_spr_border = asset_get_index("spr_gameframe_border"); globalvar gameframe_spr_caption; /// @is {sprite} gameframe_spr_caption = asset_get_index("spr_gameframe_caption"); globalvar gameframe_spr_buttons; /// @is {sprite} gameframe_spr_buttons = asset_get_index("spr_gameframe_buttons"); globalvar gameframe_spr_pixel; /// @is {sprite} gameframe_spr_pixel = asset_get_index("spr_gameframe_pixel"); globalvar gameframe_default_cursor; /// @is {window_cursor} gameframe_default_cursor = cr_arrow; globalvar gameframe_set_cursor; /// @is {bool} gameframe_set_cursor = true; globalvar gameframe_current_cursor; /// @is {window_cursor} gameframe_current_cursor = cr_arrow; globalvar gameframe_dpi_scale; /// @is {number} gameframe_dpi_scale = 1.; // gameframe: globalvar gameframe_effective_scale; /// @is {number} gameframe_effective_scale = 1.; globalvar gameframe_has_native_extension; /// @is {bool} gameframe_has_native_extension = false; globalvar gameframe_mouse_over_frame; /// @is {bool} gameframe_mouse_over_frame = false; globalvar gameframe_isMaximized_hx; /// @is {bool} gameframe_isMaximized_hx = false; globalvar gameframe_isFullscreen_hx; /// @is {bool} gameframe_isFullscreen_hx = false; globalvar gameframe_restoreRect_hx; /// @is {gameframe_tools_rect} gameframe_restoreRect_hx = gameframe_tools_rect__new(); // gameframe_caption: globalvar gameframe_caption_text; /// @is {string} gameframe_caption_text = window_get_caption(); globalvar gameframe_caption_alpha; /// @is {number} gameframe_caption_alpha = 1; globalvar gameframe_caption_font; /// @is {font} gameframe_caption_font = -1; globalvar gameframe_caption_text_align; /// @is {gml_gpu_TextAlign} gameframe_caption_text_align = 0; globalvar gameframe_caption_icon; /// @is {sprite} gameframe_caption_icon = -1; globalvar gameframe_caption_margin; /// @is {int} gameframe_caption_margin = 6; globalvar gameframe_caption_icon_margin; /// @is {int} gameframe_caption_icon_margin = 4; globalvar gameframe_caption_height_normal; /// @is {number} gameframe_caption_height_normal = -1; globalvar gameframe_caption_height_maximized; /// @is {number} gameframe_caption_height_maximized = -0.66667; globalvar gameframe_caption_draw_border; /// @is {function} gameframe_caption_draw_border = gameframe_caption_draw_border_default; globalvar gameframe_caption_draw_background; /// @is {function} gameframe_caption_draw_background = gameframe_caption_draw_caption_rect_default; globalvar gameframe_caption_draw_text; /// @is {function} gameframe_caption_draw_text = gameframe_caption_draw_caption_text_default; // gameframe_cover: globalvar gameframe_cover_check_for_success; /// @is {bool} gameframe_cover_check_for_success = false; globalvar gameframe_cover_ignore_rect; /// @is {gameframe_tools_rect} gameframe_cover_ignore_rect = gameframe_tools_rect__new(); globalvar gameframe_cover_can_ignore; /// @is {bool} gameframe_cover_can_ignore = false; globalvar gameframe_cover_curr_rect; /// @is {gameframe_tools_rect} gameframe_cover_curr_rect = gameframe_tools_rect__new(); // gameframe_delayed: globalvar gameframe_delayed_queue; /// @is {ds_queue} gameframe_delayed_queue = ds_queue_create(); globalvar gameframe_delayed_pool; /// @is {ds_stack} gameframe_delayed_pool = ds_stack_create(); globalvar gameframe_delayed_frame_index; /// @is {int} gameframe_delayed_frame_index = 0; // gameframe_drag: globalvar gameframe_drag_flags; /// @is {int} gameframe_drag_flags = 0; globalvar gameframe_drag_mx; /// @is {int} gameframe_drag_mx = 0; globalvar gameframe_drag_my; /// @is {int} gameframe_drag_my = 0; globalvar gameframe_drag_left; /// @is {int} gameframe_drag_left = 0; globalvar gameframe_drag_top; /// @is {int} gameframe_drag_top = 0; globalvar gameframe_drag_right; /// @is {int} gameframe_drag_right = 0; globalvar gameframe_drag_bottom; /// @is {int} gameframe_drag_bottom = 0; // gameframe.tools.keyctl: globalvar gameframe_tools_keyctl_up; /// @is {GfKeyboardKey} gameframe_tools_keyctl_up = gameframe_tools_keyctl_create_key(38); globalvar gameframe_tools_keyctl_down; /// @is {GfKeyboardKey} gameframe_tools_keyctl_down = gameframe_tools_keyctl_create_key(40); globalvar gameframe_tools_keyctl_keys; /// @is {array} gameframe_tools_keyctl_keys = [gameframe_tools_keyctl_up, gameframe_tools_keyctl_down]; // gameframe_tools_mon: globalvar gameframe_tools_mon_get_active_list; /// @is {ds_list} gameframe_tools_mon_get_active_list = undefined; globalvar gameframe_tools_mon_dummy; /// @is {tools_GfMonInfo} gameframe_tools_mon_dummy = undefined; /// @typedef {any} tools_GfRectImpl /// @typedef {any} gameframe_tools_rect /// @typedef {any} tools_GfMonInfo /// @typedef {any} GfKeyboardKey