diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index c87df8c3c..0003067d8 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -38,7 +38,7 @@ LATEST_VERSION = 11700; VERSION = 11750; SAVE_VERSION = 11700; - VERSION_STRING = "1.17.5.003"; + VERSION_STRING = "1.17.5.004"; BUILD_NUMBER = 11750; globalvar HOTKEYS, HOTKEY_CONTEXT; diff --git a/scripts/node_VFX_group/node_VFX_group.gml b/scripts/node_VFX_group/node_VFX_group.gml index 5b0afee1d..9bb52549d 100644 --- a/scripts/node_VFX_group/node_VFX_group.gml +++ b/scripts/node_VFX_group/node_VFX_group.gml @@ -52,8 +52,8 @@ function Node_VFX_Group(_x, _y, _group = noone) : Node_Collection(_x, _y, _group if(IS_PLAYING) for( var i = 0; i < TOTAL_FRAMES; i++ ) - for( var j = 0, m = ds_list_size(topoList); j < m; j++ ) { - var node = topoList[| j]; + for( var j = 0, m = array_length(topoList); j < m; j++ ) { + var node = topoList[j]; var _ins = instanceof(node); if(!string_pos("Node_VFX", _ins)) @@ -74,7 +74,7 @@ function Node_VFX_Group(_x, _y, _group = noone) : Node_Collection(_x, _y, _group static update = function() { #region if(IS_FIRST_FRAME) - NodeListSort(topoList, nodes); + topoList = NodeListSort(nodes); allCached = true; for( var i = 0, n = array_length(nodes); i < n; i++ ) { diff --git a/scripts/node_VFX_group_inline/node_VFX_group_inline.gml b/scripts/node_VFX_group_inline/node_VFX_group_inline.gml index 179860f67..4e6edf2b9 100644 --- a/scripts/node_VFX_group_inline/node_VFX_group_inline.gml +++ b/scripts/node_VFX_group_inline/node_VFX_group_inline.gml @@ -48,8 +48,8 @@ function Node_VFX_Group_Inline(_x, _y, _group = noone) : Node_Collection_Inline( if(!loop) return; for( var i = 0; i < TOTAL_FRAMES; i++ ) - for( var j = 0, m = ds_list_size(topoList); j < m; j++ ) { - var node = topoList[| j]; + for( var j = 0, m = array_length(topoList); j < m; j++ ) { + var node = topoList[j]; var _ins = instanceof(node); if(!string_pos("Node_VFX", _ins)) @@ -70,7 +70,7 @@ function Node_VFX_Group_Inline(_x, _y, _group = noone) : Node_Collection_Inline( static update = function() { #region if(IS_FIRST_FRAME) { - NodeListSort(topoList, nodes); + topoList = NodeListSort(nodes); reset(); } } #endregion diff --git a/scripts/node_bloom/node_bloom.gml b/scripts/node_bloom/node_bloom.gml index f63955507..2e1a79e64 100644 --- a/scripts/node_bloom/node_bloom.gml +++ b/scripts/node_bloom/node_bloom.gml @@ -32,10 +32,13 @@ function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 12] = nodeValue("Direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) .setDisplay(VALUE_DISPLAY.rotation); + // inputs[| 13] = nodeValue("Types", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + // .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Gaussian" ]); + input_display_list = [ 7, 8, - ["Surfaces", true], 0, 5, 6, 9, 10, - ["Bloom", false], 1, 2, 3, 4, - ["Directional", true], 11, 12, + ["Surfaces", true], 0, 5, 6, 9, 10, + ["Bloom", false], 1, 2, 3, 4, + ["Blur", true], 11, 12, ] outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); diff --git a/scripts/node_iterate_sort/node_iterate_sort.gml b/scripts/node_iterate_sort/node_iterate_sort.gml index 9ee9e4078..496a25b03 100644 --- a/scripts/node_iterate_sort/node_iterate_sort.gml +++ b/scripts/node_iterate_sort/node_iterate_sort.gml @@ -50,7 +50,7 @@ function Node_Iterate_Sort(_x, _y, _group = noone) : Node_Collection(_x, _y, _gr static update = function(frame = CURRENT_FRAME) { #region if(IS_FIRST_FRAME) { - NodeListSort(topoList, nodes); + topoList = NodeListSort(nodes); inputNodes = [ noone, noone ]; outputNode = noone; diff --git a/scripts/node_iterate_sort_inline/node_iterate_sort_inline.gml b/scripts/node_iterate_sort_inline/node_iterate_sort_inline.gml index 001a8c959..890eb64a8 100644 --- a/scripts/node_iterate_sort_inline/node_iterate_sort_inline.gml +++ b/scripts/node_iterate_sort_inline/node_iterate_sort_inline.gml @@ -86,7 +86,7 @@ function Node_Iterate_Sort_Inline(_x, _y, _group = noone) : Node_Collection_Inli } if(IS_FIRST_FRAME) toSort = true; - if(toSort) NodeListSort(topoList, nodes); + if(toSort) topoList = NodeListSort(nodes); toSort = false; input_node.startSort = true; diff --git a/scripts/obj_reader/obj_reader.gml b/scripts/obj_reader/obj_reader.gml index 39506426a..14d95fc4a 100644 --- a/scripts/obj_reader/obj_reader.gml +++ b/scripts/obj_reader/obj_reader.gml @@ -19,12 +19,12 @@ function readObj_init(_scale = 1, _yneg = false) { use_material = false; use_normal = true; - v = ds_list_create(); - vt = ds_list_create(); - vn = ds_list_create(); - f = ds_list_create(); - ft = ds_list_create(); - fn = ds_list_create(); + v = []; + vt = []; + vn = []; + f = []; + ft = []; + fn = []; tri = 0; } @@ -41,33 +41,33 @@ function readObj_file() { switch(sep[0]) { case "v" : if(obj_reading_yneg) { - ds_list_add(v, [ - toNumber(sep[1]) * obj_reading_scale, - toNumber(sep[3]) * obj_reading_scale, - -toNumber(sep[2]) * obj_reading_scale, + array_push(v, [ + real(sep[1]) * obj_reading_scale, + real(sep[3]) * obj_reading_scale, + -real(sep[2]) * obj_reading_scale, ]); } else { - ds_list_add(v, [ - toNumber(sep[1]) * obj_reading_scale, - toNumber(sep[2]) * obj_reading_scale, - toNumber(sep[3]) * obj_reading_scale, + array_push(v, [ + real(sep[1]) * obj_reading_scale, + real(sep[2]) * obj_reading_scale, + real(sep[3]) * obj_reading_scale, ]); } break; case "vt" : - var _u = toNumber(sep[1]); - var _v = toNumber(sep[2]); + var _u = real(sep[1]); + var _v = real(sep[2]); - ds_list_add(vt, [ _u, _v ]); + array_push(vt, [ _u, _v ]); break; case "vn" : - var _nx = toNumber(sep[1]); - var _ny = toNumber(sep[2]); - var _nz = toNumber(sep[3]); + var _nx = real(sep[1]); + var _ny = real(sep[2]); + var _nz = real(sep[3]); - ds_list_add(vn, [ _nx, _ny, _nz ]); + array_push(vn, [ _nx, _ny, _nz ]); break; case "f" : @@ -80,17 +80,17 @@ function readObj_file() { var _sp = string_split(sep[i], "/"); if(array_length(_sp) < 3) continue; - _f[i - 1] = toNumber(_sp[0]); - _ft[i - 1] = toNumber(_sp[1]); - _fn[i - 1] = toNumber(_sp[2]); + _f[i - 1] = real(_sp[0]) - 1; + _ft[i - 1] = real(_sp[1]) - 1; + _fn[i - 1] = real(_sp[2]) - 1; use_normal = array_length(_sp) >= 4; } tri += _len - 2; - ds_list_add(f, _f ); //get position - ds_list_add(ft, _ft); //get texture map - ds_list_add(fn, _fn); //get normal + array_push(f, _f ); //get position + array_push(ft, _ft); //get texture map + array_push(fn, _fn); //get normal break; case "usemtl" : @@ -103,14 +103,14 @@ function readObj_file() { array_push_unique(mats, mname); array_push(matIndex, array_find(mats, mname)); - if(!ds_list_empty(f)) { + if(!array_empty(f)) { array_push(_VB, f); array_push(_VBT, ft); array_push(_VBN, fn); array_push(tris, tri); - f = ds_list_create(); - ft = ds_list_create(); - fn = ds_list_create(); + f = []; + ft = []; + fn = []; } tri = 0; @@ -131,7 +131,7 @@ function readObj_file() { if(current_time - _time > 30) return; } #endregion - if(!ds_list_empty(f)) { + if(!array_empty(f)) { array_push(_VB, f); array_push(_VBT, ft); array_push(_VBN, fn); @@ -139,23 +139,15 @@ function readObj_file() { } file_text_close(obj_read_file); - if(use_normal) vn[| 0] = [ 0, 0, 0 ]; + if(use_normal) vn[0] = [ 0, 0, 0 ]; obj_read_progress = 1; obj_read_prog_sub = 0; - - //var txt = "OBJ summary"; - //txt += $"\n\tVerticies : {ds_list_size(v)}"; - //txt += $"\n\tTexture Verticies : {ds_list_size(vt)}"; - //txt += $"\n\tNormal Verticies : {ds_list_size(vn)}"; - //txt += $"\n\tVertex groups : {array_length(_VB)}"; - //txt += $"\n\tTriangles : {tris}"; - //print(txt); } function readObj_cent() { #region centralize vertex - var _v0 = v[| 0]; + var _v0 = v[0]; var _bminx = _v0[0]; var _bminy = _v0[1]; var _bminz = _v0[2]; @@ -168,10 +160,10 @@ function readObj_cent() { var cvy = 0; var cvz = 0; - vertex = ds_list_size(v); + vertex = array_length(v); for( var i = 0; i < vertex; i++ ) { - var _v = v[| i]; + var _v = v[i]; var _v0 = _v[0]; var _v1 = _v[1]; var _v2 = _v[2]; @@ -200,7 +192,7 @@ function readObj_cent() { ); for( var i = 0; i < vertex; i++ ) { - var _v = v[| i]; + var _v = v[i]; _v[0] = _v[0] - cvx; _v[1] = _v[1] - cvy; @@ -225,13 +217,13 @@ function readObj_buff() { var facet = _VBT[i]; var facen = _VBN[i]; - var _flen = ds_list_size(face); - var _v = ds_list_create(); + var _flen = array_length(face); + var _v = []; for(var j = 0; j < _flen; j++) { - var _f = face[| j]; - var _ft = facet[| j]; - var _fn = facen[| j]; + var _f = face[j]; + var _ft = facet[j]; + var _fn = facen[j]; var _vlen = array_length(_f); var _pf = array_create(_vlen); @@ -239,29 +231,24 @@ function readObj_buff() { var _pfn = array_create(_vlen); for( var k = 0; k < _vlen; k++ ) { - var _vPindex = _f[k] - 1; - _pf[k] = v[| _vPindex]; - - var _vNindex = _fn[k] - 1; - _pfn[k] = vn[| _vNindex]; - - var _vTindex = _ft[k] - 1; - _pft[k] = vt[| _vTindex]; + _pf[k] = v[_f[k]]; + _pfn[k] = vn[_fn[k]]; + _pft[k] = vt[_ft[k]]; } var _pf0 = _pf[0], _pf1 = _pf[1], _pf2 = _pf[2]; var _pfn0 = _pfn[0], _pfn1 = _pfn[1], _pfn2 = _pfn[2]; var _pft0 = _pft[0], _pft1 = _pft[1], _pft2 = _pft[2]; - if(_vlen >= 3) { + // if(_vlen >= 3) { vertex_add_pntc(VB, _pf0, _pfn0, _pft0); vertex_add_pntc(VB, _pf2, _pfn2, _pft2); vertex_add_pntc(VB, _pf1, _pfn1, _pft1); - ds_list_add(_v, new __vertex(_pf0[0], _pf0[1], _pf0[2]).setNormal(_pfn0[0], _pfn0[1]).setUV(_pft0[0], _pft0[1])); - ds_list_add(_v, new __vertex(_pf2[0], _pf2[1], _pf2[2]).setNormal(_pfn2[0], _pfn2[1]).setUV(_pft2[0], _pft2[1])); - ds_list_add(_v, new __vertex(_pf1[0], _pf1[1], _pf1[2]).setNormal(_pfn1[0], _pfn1[1]).setUV(_pft1[0], _pft1[1])); - } + array_push(_v, new __vertex(_pf0[0], _pf0[1], _pf0[2]).setNormal(_pfn0[0], _pfn0[1]).setUV(_pft0[0], _pft0[1])); + array_push(_v, new __vertex(_pf2[0], _pf2[1], _pf2[2]).setNormal(_pfn2[0], _pfn2[1]).setUV(_pft2[0], _pft2[1])); + array_push(_v, new __vertex(_pf1[0], _pf1[1], _pf1[2]).setNormal(_pfn1[0], _pfn1[1]).setUV(_pft1[0], _pft1[1])); + // } if(_vlen >= 4) { var _pf3 = _pf[3]; @@ -272,31 +259,19 @@ function readObj_buff() { vertex_add_pntc(VB, _pf3, _pfn3, _pft3); vertex_add_pntc(VB, _pf2, _pfn2, _pft2); - ds_list_add(_v, new __vertex(_pf0[0], _pf0[1], _pf0[2]).setNormal(_pfn0[0], _pfn0[1]).setUV(_pft0[0], _pft0[1])); - ds_list_add(_v, new __vertex(_pf3[0], _pf3[1], _pf3[2]).setNormal(_pfn3[0], _pfn3[1]).setUV(_pft3[0], _pft3[1])); - ds_list_add(_v, new __vertex(_pf2[0], _pf2[1], _pf2[2]).setNormal(_pfn2[0], _pfn2[1]).setUV(_pft2[0], _pft2[1])); + array_push(_v, new __vertex(_pf0[0], _pf0[1], _pf0[2]).setNormal(_pfn0[0], _pfn0[1]).setUV(_pft0[0], _pft0[1])); + array_push(_v, new __vertex(_pf3[0], _pf3[1], _pf3[2]).setNormal(_pfn3[0], _pfn3[1]).setUV(_pft3[0], _pft3[1])); + array_push(_v, new __vertex(_pf2[0], _pf2[1], _pf2[2]).setNormal(_pfn2[0], _pfn2[1]).setUV(_pft2[0], _pft2[1])); } } vertex_end(VB); - // vertex_freeze(VB); - + VBS[i] = VB; - V[i] = ds_list_to_array(_v); - ds_list_destroy(_v); + V[i] = _v; } #endregion - #region clean - array_foreach(_VB, function(val, ind) { ds_list_destroy(val); }); - array_foreach(_VBT, function(val, ind) { ds_list_destroy(val); }); - array_foreach(_VBN, function(val, ind) { ds_list_destroy(val); }); - - ds_list_destroy(v); - ds_list_destroy(vn); - ds_list_destroy(vt); - #endregion - obj_read_progress = 3; obj_read_prog_sub = 0; diff --git a/scripts/render_data/render_data.gml b/scripts/render_data/render_data.gml index f31c770fe..c9239ade8 100644 --- a/scripts/render_data/render_data.gml +++ b/scripts/render_data/render_data.gml @@ -44,16 +44,15 @@ function NodeTopoSort() { #region LOG_IF(global.FLAG.render == 1, $"+++++++ Topo Sort Completed: {array_length(PROJECT.nodeTopo)}/{amo} nodes sorted in {(get_timer() - _t) / 1000} ms +++++++"); } #endregion -function NodeListSort(_list, _nodeList) { #region +function NodeListSort(_nodeList) { #region array_foreach(_nodeList, function(node) { node.clearTopoSorted(); return 0; }); - // print($"===================== NODE LIST SORT =====================") - - ds_list_clear(_list); - __topoSort(_list, _nodeList); + var _arr = []; + __topoSort(_arr, _nodeList); + return _arr; } #endregion function __sortNode(_arr, _node) { #region @@ -263,10 +262,10 @@ function Render(partial = false, runAction = false) { #region function __renderListReset(arr) { #region for( var i = 0; i < array_length(arr); i++ ) { - list[i].setRenderStatus(false); + arr[i].setRenderStatus(false); - if(struct_has(list[i], "nodes")) - __renderListReset(list[i].nodes); + if(struct_has(arr[i], "nodes")) + __renderListReset(arr[i].nodes); } } #endregion @@ -316,7 +315,7 @@ function RenderList(arr) { #region var nextNodes = rendering.getNextNodes(); for( var i = 0, n = array_length(nextNodes); i < n; i++ ) { var _node = nextNodes[i]; - if(ds_list_exist(list, _node) && _node.isRenderable()) + if(array_exists(arr, _node) && _node.isRenderable()) ds_queue_enqueue(queue, _node); } }