diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 54c95182f..befeebba2 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -36,10 +36,10 @@ globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION; LATEST_VERSION = 11700; - VERSION = 11750; + VERSION = 11760; SAVE_VERSION = 11700; - VERSION_STRING = "1.17.5.005"; - BUILD_NUMBER = 11750; + VERSION_STRING = "1.17.6"; + BUILD_NUMBER = 11760; globalvar HOTKEYS, HOTKEY_CONTEXT; HOTKEYS = ds_map_create(); diff --git a/scripts/locale_data/locale_data.gml b/scripts/locale_data/locale_data.gml index c9d2caaac..64ddb75db 100644 --- a/scripts/locale_data/locale_data.gml +++ b/scripts/locale_data/locale_data.gml @@ -1,201 +1,199 @@ -#region locale - globalvar LOCALE, TEST_LOCALE, LOCALE_DEF; - LOCALE = { - fontDir: "", - config: { per_character_line_break: false }, - }; - global.missing_locale = {} +globalvar LOCALE, TEST_LOCALE, LOCALE_DEF; +LOCALE = { + fontDir: "", + config: { per_character_line_break: false }, +}; +global.missing_locale = {} + +TEST_LOCALE = false; +LOCALE_DEF = true; + +function __initLocale() { + var lfile = $"data/Locale/en.zip"; + var root = $"{DIRECTORY}Locale"; - TEST_LOCALE = false; - LOCALE_DEF = true; + directory_verify(root); + if(check_version($"{root}/version")) { + zip_unzip(lfile, root); + file_copy($"data/Locale/LOCALIZATION GUIDES.txt", $"{DIRECTORY}Locale/LOCALIZATION GUIDES.txt"); + } - function __initLocale() { #region - var lfile = $"data/Locale/en.zip"; - var root = $"{DIRECTORY}Locale"; - - directory_verify(root); - if(check_version($"{root}/version")) { - zip_unzip(lfile, root); - file_copy($"data/Locale/LOCALIZATION GUIDES.txt", $"{DIRECTORY}Locale/LOCALIZATION GUIDES.txt"); + if(LOCALE_DEF && !TEST_LOCALE) return; + + loadLocale(); +} + +function __locale_file(file) { + var dirr = $"{DIRECTORY}Locale/{PREFERENCES.local}"; + if(!directory_exists(dirr) || !file_exists_empty(dirr + file)) + dirr = $"{DIRECTORY}Locale/en"; + return dirr + file; +} + +function loadLocale() { + LOCALE.word = json_load_struct(__locale_file("/words.json")); + LOCALE.ui = json_load_struct(__locale_file("/UI.json")); + LOCALE.node = json_load_struct(__locale_file("/nodes.json")); + LOCALE.config = json_load_struct(__locale_file("/config.json")); + + var fontDir = $"{DIRECTORY}Locale/{PREFERENCES.local}/fonts/"; + LOCALE.fontDir = directory_exists(fontDir)? fontDir : noone; +} + +function __txtx(key, def = "") { + INLINE + + if(LOCALE_DEF && !TEST_LOCALE) return def; + + if(TEST_LOCALE) { + if(key != "" && !struct_has(LOCALE.word, key) && !struct_has(LOCALE.ui, key)) { + global.missing_locale[$ key] = def; + show_debug_message($"LOCALE: {global.missing_locale}"); + return def; } - - if(LOCALE_DEF && !TEST_LOCALE) return; - - loadLocale(); - } #endregion + return ""; + } - function __locale_file(file) { #region - var dirr = $"{DIRECTORY}Locale/{PREFERENCES.local}"; - if(!directory_exists(dirr) || !file_exists_empty(dirr + file)) - dirr = $"{DIRECTORY}Locale/en"; - return dirr + file; - } #endregion + if(struct_has(LOCALE.word, key)) return LOCALE.word[$ key]; + if(struct_has(LOCALE.ui, key)) return LOCALE.ui[$ key]; - function loadLocale() { #region - LOCALE.word = json_load_struct(__locale_file("/words.json")); - LOCALE.ui = json_load_struct(__locale_file("/UI.json")); - LOCALE.node = json_load_struct(__locale_file("/nodes.json")); - LOCALE.config = json_load_struct(__locale_file("/config.json")); - - var fontDir = $"{DIRECTORY}Locale/{PREFERENCES.local}/fonts/"; - LOCALE.fontDir = directory_exists(fontDir)? fontDir : noone; - } #endregion + return def; +} + +function __txt(txt, prefix = "") { + INLINE - function __txtx(key, def = "") { #region - INLINE + if(LOCALE_DEF && !TEST_LOCALE) return txt; + + var key = string_lower(txt); + key = string_replace_all(key, " ", "_"); - if(LOCALE_DEF && !TEST_LOCALE) return def; - - if(TEST_LOCALE) { - if(key != "" && !struct_has(LOCALE.word, key) && !struct_has(LOCALE.ui, key)) { - global.missing_locale[$ key] = def; - show_debug_message($"LOCALE: {global.missing_locale}"); - return def; - } - return ""; + if(TEST_LOCALE) { + if(key != "" && !struct_has(LOCALE.word, key) && !struct_has(LOCALE.ui, key)) { + global.missing_locale[$ key] = txt; + show_debug_message($"LOCALE: {global.missing_locale}"); + return txt; + } + return ""; + } + + return __txtx(prefix + key, txt); +} + +function __txta(txt) { + var _txt = __txt(txt); + for(var i = 1; i < argument_count; i++) + _txt = string_replace_all(_txt, $"\{{i}\}", string(argument[i])); + + return _txt; +} + +function __txt_node_name(node, def = "") { + INLINE + + if(LOCALE_DEF && !TEST_LOCALE) return def; + + if(TEST_LOCALE) { + if(node != "Node_Custom" && !struct_has(LOCALE.node, node)) { + show_debug_message($"LOCALE [NODE]: \"{node}\": \"{def}\","); + return def; } - - if(struct_has(LOCALE.word, key)) return LOCALE.word[$ key]; - if(struct_has(LOCALE.ui, key)) return LOCALE.ui[$ key]; - + return ""; + } + + if(!struct_has(LOCALE.node, node)) return def; - } #endregion - function __txt(txt, prefix = "") { #region - INLINE - - if(LOCALE_DEF && !TEST_LOCALE) return txt; - - var key = string_lower(txt); - key = string_replace_all(key, " ", "_"); - - if(TEST_LOCALE) { - if(key != "" && !struct_has(LOCALE.word, key) && !struct_has(LOCALE.ui, key)) { - global.missing_locale[$ key] = txt; - show_debug_message($"LOCALE: {global.missing_locale}"); - return txt; - } - return ""; - } - - return __txtx(prefix + key, txt); - } #endregion + return LOCALE.node[$ node].name; +} + +function __txt_node_tooltip(node, def = "") { + INLINE - function __txta(txt) { #region - var _txt = __txt(txt); - for(var i = 1; i < argument_count; i++) - _txt = string_replace_all(_txt, $"\{{i}\}", string(argument[i])); + if(LOCALE_DEF && !TEST_LOCALE) return def; - return _txt; - } #endregion - - function __txt_node_name(node, def = "") { #region - INLINE - - if(LOCALE_DEF && !TEST_LOCALE) return def; - - if(TEST_LOCALE) { - if(node != "Node_Custom" && !struct_has(LOCALE.node, node)) { - show_debug_message($"LOCALE [NODE]: \"{node}\": \"{def}\","); - return def; - } - return ""; - } - - if(!struct_has(LOCALE.node, node)) + if(TEST_LOCALE) { + if(node != "Node_Custom" && !struct_has(LOCALE.node, node)) { + show_debug_message($"LOCALE [TIP]: \"{node}\": \"{def}\","); return def; - - return LOCALE.node[$ node].name; - } #endregion - - function __txt_node_tooltip(node, def = "") { #region - INLINE - - if(LOCALE_DEF && !TEST_LOCALE) return def; - - if(TEST_LOCALE) { - if(node != "Node_Custom" && !struct_has(LOCALE.node, node)) { - show_debug_message($"LOCALE [TIP]: \"{node}\": \"{def}\","); - return def; - } - return ""; } - - if(!struct_has(LOCALE.node, node)) - return def; - - return LOCALE.node[$ node].tooltip; - } #endregion + return ""; + } - function __txt_junction_name(node, type, index, def = "") { #region - INLINE - - if(LOCALE_DEF && !TEST_LOCALE) return def; - - if(TEST_LOCALE) { - if(!struct_has(LOCALE.node, node)) { - show_debug_message($"LOCALE [JNAME]: \"{node}\": \"{def}\","); - return def; - } - return ""; - } - - if(!struct_has(LOCALE.node, node)) - return def; - - var nde = LOCALE.node[$ node]; - var lst = type == JUNCTION_CONNECT.input? nde.inputs : nde.outputs; - if(index >= array_length(lst)) return def; - - return lst[index].name; - } #endregion + if(!struct_has(LOCALE.node, node)) + return def; - function __txt_junction_tooltip(node, type, index, def = "") { #region - INLINE - - if(LOCALE_DEF && !TEST_LOCALE) return def; - - if(TEST_LOCALE) { - if(!struct_has(LOCALE.node, node)) { - show_debug_message($"LOCALE [JTIP]: \"{node}\": \"{def}\","); - return def; - } - return ""; - } - - if(!struct_has(LOCALE.node, node)) - return def; - - var nde = LOCALE.node[$ node]; - var lst = type == JUNCTION_CONNECT.input? nde.inputs : nde.outputs; - if(index >= array_length(lst)) return def; - - return lst[index].tooltip; - } #endregion + return LOCALE.node[$ node].tooltip; +} + +function __txt_junction_name(node, type, index, def = "") { + INLINE - function __txt_junction_data(node, type, index, def = []) { #region - INLINE - - if(LOCALE_DEF && !TEST_LOCALE) return def; - - if(TEST_LOCALE) { - if(!struct_has(LOCALE.node, node)) { - show_debug_message($"LOCALE [DDATA]: \"{node}\": \"{def}\","); - return def; - } - return [ "" ]; + if(LOCALE_DEF && !TEST_LOCALE) return def; + + if(TEST_LOCALE) { + if(!struct_has(LOCALE.node, node)) { + show_debug_message($"LOCALE [JNAME]: \"{node}\": \"{def}\","); + return def; } - - if(!struct_has(LOCALE.node, node)) + return ""; + } + + if(!struct_has(LOCALE.node, node)) + return def; + + var nde = LOCALE.node[$ node]; + var lst = type == JUNCTION_CONNECT.input? nde.inputs : nde.outputs; + if(index >= array_length(lst)) return def; + + return lst[index].name; +} + +function __txt_junction_tooltip(node, type, index, def = "") { + INLINE + + if(LOCALE_DEF && !TEST_LOCALE) return def; + + if(TEST_LOCALE) { + if(!struct_has(LOCALE.node, node)) { + show_debug_message($"LOCALE [JTIP]: \"{node}\": \"{def}\","); return def; - - var nde = LOCALE.node[$ node]; - var lst = type == JUNCTION_CONNECT.input? nde.inputs : nde.outputs; - if(index >= array_length(lst)) return def; - - if(!struct_has(lst[index], "display_data")) + } + return ""; + } + + if(!struct_has(LOCALE.node, node)) + return def; + + var nde = LOCALE.node[$ node]; + var lst = type == JUNCTION_CONNECT.input? nde.inputs : nde.outputs; + if(index >= array_length(lst)) return def; + + return lst[index].tooltip; +} + +function __txt_junction_data(node, type, index, def = []) { + INLINE + + if(LOCALE_DEF && !TEST_LOCALE) return def; + + if(TEST_LOCALE) { + if(!struct_has(LOCALE.node, node)) { + show_debug_message($"LOCALE [DDATA]: \"{node}\": \"{def}\","); return def; + } + return [ "" ]; + } + + if(!struct_has(LOCALE.node, node)) + return def; - return lst[index].display_data; - } #endregion -#endregion \ No newline at end of file + var nde = LOCALE.node[$ node]; + var lst = type == JUNCTION_CONNECT.input? nde.inputs : nde.outputs; + if(index >= array_length(lst)) return def; + + if(!struct_has(lst[index], "display_data")) + return def; + + return lst[index].display_data; +} diff --git a/scripts/node_composite/node_composite.gml b/scripts/node_composite/node_composite.gml index e12867b50..4b91f173e 100644 --- a/scripts/node_composite/node_composite.gml +++ b/scripts/node_composite/node_composite.gml @@ -356,18 +356,14 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) function deleteLayer(index) { #region var idx = input_fix_len + index * data_length; - for( var i = 0; i < data_length; i++ ) { + for( var i = 0; i < data_length; i++ ) ds_list_delete(inputs, idx); - array_remove(input_display_list, idx + i); - } - for( var i = input_display_list_len; i < array_length(input_display_list); i++ ) { - if(input_display_list[i] > idx) - input_display_list[i] = input_display_list[i] - data_length; - } + input_display_list = array_clone(input_display_list_raw, 1); + + for(var i = input_fix_len, n = ds_list_size(inputs); i < n; i++) + array_push(input_display_list, i); - if(ds_list_size(inputs) == input_fix_len) - createNewInput(); doUpdate(); } #endregion