2022-01-13 05:24:03 +01:00
|
|
|
/// @description init
|
|
|
|
#region step
|
|
|
|
if(PANEL_MAIN != 0)
|
|
|
|
PANEL_MAIN.step();
|
|
|
|
|
|
|
|
for(var i = 0; i < ds_list_size(NODES); i++) {
|
|
|
|
NODES[| i].step();
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region animation
|
2023-01-04 02:30:04 +01:00
|
|
|
ANIMATOR.frame_progress = false;
|
|
|
|
|
2022-01-13 05:24:03 +01:00
|
|
|
if(ANIMATOR.is_playing) {
|
2023-01-01 02:06:02 +01:00
|
|
|
ANIMATOR.time_since_last_frame += ANIMATOR.framerate * (delta_time / 1000000);
|
|
|
|
|
|
|
|
if(ANIMATOR.time_since_last_frame >= 1) {
|
|
|
|
ANIMATOR.real_frame += 1;
|
|
|
|
ANIMATOR.time_since_last_frame = 0;
|
|
|
|
}
|
|
|
|
|
2022-11-22 14:25:39 +01:00
|
|
|
if(round(ANIMATOR.real_frame) >= ANIMATOR.frames_total) {
|
2022-12-23 04:45:52 +01:00
|
|
|
if(ANIMATOR.playback == ANIMATOR_END.stop || ANIMATOR.rendering) {
|
2022-12-19 13:35:30 +01:00
|
|
|
ANIMATOR.setFrame(ANIMATOR.frames_total - 1);
|
|
|
|
ANIMATOR.is_playing = false;
|
2022-12-23 04:45:52 +01:00
|
|
|
ANIMATOR.rendering = false;
|
2022-12-19 13:35:30 +01:00
|
|
|
} else
|
|
|
|
ANIMATOR.setFrame(0);
|
2023-01-04 02:30:04 +01:00
|
|
|
} else {
|
|
|
|
var _c = ANIMATOR.current_frame;
|
|
|
|
ANIMATOR.current_frame = round(ANIMATOR.real_frame);
|
|
|
|
ANIMATOR.frame_progress = _c != ANIMATOR.current_frame;
|
2022-01-13 05:24:03 +01:00
|
|
|
}
|
|
|
|
} else {
|
2022-12-10 05:06:01 +01:00
|
|
|
ANIMATOR.setFrame(ANIMATOR.real_frame);
|
2023-01-01 02:06:02 +01:00
|
|
|
ANIMATOR.time_since_last_frame = 0;
|
2022-01-13 05:24:03 +01:00
|
|
|
}
|
|
|
|
|
2022-12-23 04:45:52 +01:00
|
|
|
//if(ANIMATOR.frame_progress)
|
|
|
|
// UPDATE = RENDER_TYPE.full;
|
2022-01-13 05:24:03 +01:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region hotkey
|
|
|
|
HOTKEY_MOD = 0;
|
2022-12-22 03:09:55 +01:00
|
|
|
if(CTRL == KEYBOARD_STATUS.pressing) HOTKEY_MOD |= MOD_KEY.ctrl;
|
|
|
|
if(SHIFT == KEYBOARD_STATUS.pressing) HOTKEY_MOD |= MOD_KEY.shift;
|
|
|
|
if(ALT == KEYBOARD_STATUS.pressing) HOTKEY_MOD |= MOD_KEY.alt;
|
2022-01-13 05:24:03 +01:00
|
|
|
|
|
|
|
if(ds_map_exists(HOTKEYS, "")) {
|
|
|
|
var l = HOTKEYS[? ""];
|
|
|
|
for(var i = 0; i < ds_list_size(l); i++) {
|
2023-01-17 08:11:55 +01:00
|
|
|
var hotkey = l[| i];
|
|
|
|
var name = hotkey.name;
|
2022-01-13 05:24:03 +01:00
|
|
|
|
|
|
|
if(key_press(hotkey.key, hotkey.modi)) {
|
2022-12-22 03:09:55 +01:00
|
|
|
hotkey.action();
|
|
|
|
key_release();
|
2022-01-13 05:24:03 +01:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(ds_map_exists(HOTKEYS, FOCUS_STR)) {
|
|
|
|
var list = HOTKEYS[? FOCUS_STR];
|
|
|
|
for(var i = 0; i < ds_list_size(list); i++) {
|
|
|
|
var hotkey = list[| i];
|
|
|
|
|
|
|
|
if(hotkey.key != -1) {
|
|
|
|
if(key_press(hotkey.key, hotkey.modi)) {
|
|
|
|
hotkey.action();
|
2022-12-22 03:09:55 +01:00
|
|
|
key_release();
|
2022-01-13 05:24:03 +01:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region coroutine
|
|
|
|
for( var i = 0; i < ds_list_size(GIF_READER); i++ ) {
|
|
|
|
var _reader = GIF_READER[| i];
|
|
|
|
|
|
|
|
var _reading = _reader[0].reading();
|
|
|
|
if(_reading) {
|
|
|
|
var ret = _reader[2];
|
|
|
|
ret(new __gif_sprite_builder(_reader[0]));
|
|
|
|
ds_stack_push(gif_complete_st, i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
while(!ds_stack_empty(gif_complete_st)) {
|
|
|
|
var i = ds_stack_pop(gif_complete_st);
|
|
|
|
buffer_delete(GIF_READER[| i][1]);
|
|
|
|
delete GIF_READER[| i][0];
|
|
|
|
ds_list_delete(GIF_READER, i);
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
2022-09-21 06:09:40 +02:00
|
|
|
#region file drop
|
2022-12-16 09:18:09 +01:00
|
|
|
if(array_length(drop_path)) {
|
|
|
|
load_file_path(drop_path);
|
|
|
|
drop_path = [];
|
2022-09-21 06:09:40 +02:00
|
|
|
}
|
2022-09-27 06:37:28 +02:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region window
|
|
|
|
if (window_command_check(window_command_maximize)) {
|
|
|
|
window_command_run(window_command_maximize);
|
|
|
|
PREF_MAP[? "window_maximize"] = !PREF_MAP[? "window_maximize"];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (window_command_check(window_command_close)) {
|
2022-11-01 03:06:03 +01:00
|
|
|
if(MODIFIED && !READONLY) {
|
2022-09-27 06:37:28 +02:00
|
|
|
dialogCall(o_dialog_exit);
|
|
|
|
} else {
|
|
|
|
PREF_SAVE();
|
|
|
|
game_end();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(_modified != MODIFIED) {
|
|
|
|
_modified = MODIFIED;
|
|
|
|
window_set_caption(CURRENT_PATH + (MODIFIED? "*" : "") + " - Pixel Composer");
|
|
|
|
}
|
2022-11-03 11:44:49 +01:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region notification
|
|
|
|
if(!ds_list_empty(WARNING)) {
|
|
|
|
var rem = ds_stack_create();
|
|
|
|
|
|
|
|
for( var i = 0; i < ds_list_size(WARNING); i++ ) {
|
|
|
|
var w = WARNING[| i];
|
|
|
|
if(--w.life <= 0)
|
|
|
|
ds_stack_push(rem, w);
|
|
|
|
}
|
|
|
|
|
|
|
|
while(!ds_stack_empty(rem)) {
|
|
|
|
ds_list_delete(WARNING, ds_stack_pop(rem));
|
|
|
|
}
|
|
|
|
|
|
|
|
ds_stack_destroy(rem);
|
|
|
|
}
|
2022-09-21 06:09:40 +02:00
|
|
|
#endregion
|