@@ -62,7 +62,7 @@ void base_on_drop_files(char *drop_path) {
6262
6363void base_init_on_start_arm (void * _ ) {
6464 if (base_start_arm_found ) {
65- import_arm_run_project (project_filepath );
65+ import_arm_run_project (g_project -> _ -> filepath );
6666 }
6767 g_context -> tool = TOOL_TYPE_CURSOR ;
6868 // Auto-run main script
@@ -103,7 +103,7 @@ void base_material_dropped() {
103103 layers_create_fill_layer (uv_type , decal_mat , g_context -> drag_dest );
104104 }
105105 else if (context_in_nodes ()) {
106- ui_nodes_accept_material_drop (array_index_of (project_materials , base_drag_material ));
106+ ui_nodes_accept_material_drop (array_index_of (g_project -> _ -> materials , base_drag_material ));
107107 }
108108 else if (context_in_materials ()) {
109109 tab_materials_accept_material_drop (base_drag_material );
@@ -114,7 +114,7 @@ void base_material_dropped() {
114114
115115void base_update_import_asset_done () {
116116 // Asset was material
117- if (project_materials -> length > _base_material_count ) {
117+ if (g_project -> _ -> materials -> length > _base_material_count ) {
118118 gc_unroot (base_drag_material );
119119 base_drag_material = g_context -> material ;
120120 gc_root (base_drag_material );
@@ -191,7 +191,7 @@ void base_update(void *_) {
191191
192192 // Create image texture
193193 if (context_in_nodes ()) {
194- ui_nodes_accept_asset_drop (array_index_of (project_assets , base_drag_asset ));
194+ ui_nodes_accept_asset_drop (array_index_of (g_project -> _ -> assets , base_drag_asset ));
195195 }
196196 else if (context_in_3d_view ()) {
197197 if (ends_with (to_lower_case (base_drag_asset -> file ), ".hdr" )) {
@@ -239,7 +239,7 @@ void base_update(void *_) {
239239 base_drop_x = mouse_x ;
240240 base_drop_y = mouse_y ;
241241
242- _base_material_count = project_materials -> length ;
242+ _base_material_count = g_project -> _ -> materials -> length ;
243243 import_asset_run (base_drag_file , base_drop_x , base_drop_y , true, true, & base_update_import_asset_done );
244244 }
245245
@@ -253,7 +253,7 @@ void base_update(void *_) {
253253 }
254254 else if (base_drag_layer != NULL ) {
255255 if (context_in_nodes ()) {
256- ui_nodes_accept_layer_drop (array_index_of (project_layers , base_drag_layer ));
256+ ui_nodes_accept_layer_drop (array_index_of (g_project -> _ -> layers , base_drag_layer ));
257257 }
258258 else if (context_in_layers () && base_is_dragging ) {
259259 slot_layer_move (base_drag_layer , g_context -> drag_dest );
@@ -652,7 +652,7 @@ void ui_base_init() {
652652
653653 project_new (false);
654654
655- if (string_equals (project_filepath , "" )) {
655+ if (string_equals (g_project -> _ -> filepath , "" )) {
656656 sys_notify_on_next_frame (& ui_base_init_on_next_frame , NULL );
657657 }
658658
@@ -1005,8 +1005,8 @@ void ui_base_update_ui() {
10051005 g_context -> layer_preview_dirty = false;
10061006 g_context -> mask_preview_last = NULL ;
10071007 // Update all layer previews
1008- for (i32 i = 0 ; i < project_layers -> length ; ++ i ) {
1009- slot_layer_t * l = project_layers -> buffer [i ];
1008+ for (i32 i = 0 ; i < g_project -> _ -> layers -> length ; ++ i ) {
1009+ slot_layer_t * l = g_project -> _ -> layers -> buffer [i ];
10101010 if (slot_layer_is_group (l )) {
10111011 continue ;
10121012 }
@@ -1846,9 +1846,7 @@ void base_init() {
18461846 // Startup project
18471847 char * start_arm = string ("%s/start.arm" , iron_internal_files_location ());
18481848 if (iron_file_exists (start_arm )) {
1849- gc_unroot (project_filepath );
1850- project_filepath = start_arm ;
1851- gc_root (project_filepath );
1849+ g_project -> _ -> filepath = start_arm ;
18521850 base_start_arm_found = true;
18531851 args_player = true;
18541852 }
@@ -2009,10 +2007,10 @@ void base_resize() {
20092007
20102008string_array_t * base_combo_enum_texts (char * node_type ) {
20112009 if (string_equals (node_type , "TEX_IMAGE" )) {
2012- if (project_assets -> length > 0 ) {
2010+ if (g_project -> _ -> assets -> length > 0 ) {
20132011 string_array_t * asset_names = any_array_create_from_raw ((void * []){}, 0 );
2014- for (i32 i = 0 ; i < project_assets -> length ; ++ i ) {
2015- any_array_push (asset_names , project_assets -> buffer [i ]-> name );
2012+ for (i32 i = 0 ; i < g_project -> _ -> assets -> length ; ++ i ) {
2013+ any_array_push (asset_names , g_project -> _ -> assets -> buffer [i ]-> name );
20162014 }
20172015 return asset_names ;
20182016 }
@@ -2028,27 +2026,27 @@ string_array_t *base_combo_enum_texts(char *node_type) {
20282026
20292027 if (string_equals (node_type , "LAYER" ) || string_equals (node_type , "LAYER_MASK" )) {
20302028 string_array_t * layer_names = any_array_create_from_raw ((void * []){}, 0 );
2031- for (i32 i = 0 ; i < project_layers -> length ; ++ i ) {
2032- slot_layer_t * l = project_layers -> buffer [i ];
2029+ for (i32 i = 0 ; i < g_project -> _ -> layers -> length ; ++ i ) {
2030+ slot_layer_t * l = g_project -> _ -> layers -> buffer [i ];
20332031 any_array_push (layer_names , l -> name );
20342032 }
20352033 return layer_names ;
20362034 }
20372035
20382036 if (string_equals (node_type , "MATERIAL" )) {
20392037 string_array_t * material_names = any_array_create_from_raw ((void * []){}, 0 );
2040- for (i32 i = 0 ; i < project_materials -> length ; ++ i ) {
2041- slot_material_t * m = project_materials -> buffer [i ];
2038+ for (i32 i = 0 ; i < g_project -> _ -> materials -> length ; ++ i ) {
2039+ slot_material_t * m = g_project -> _ -> materials -> buffer [i ];
20422040 any_array_push (material_names , m -> canvas -> name );
20432041 }
20442042 return material_names ;
20452043 }
20462044
20472045 if (string_equals (node_type , "image_texture_node" )) {
2048- if (project_assets -> length > 0 ) {
2046+ if (g_project -> _ -> assets -> length > 0 ) {
20492047 string_array_t * asset_names = any_array_create_from_raw ((void * []){}, 0 );
2050- for (i32 i = 0 ; i < project_assets -> length ; ++ i ) {
2051- any_array_push (asset_names , project_assets -> buffer [i ]-> name );
2048+ for (i32 i = 0 ; i < g_project -> _ -> assets -> length ; ++ i ) {
2049+ any_array_push (asset_names , g_project -> _ -> assets -> buffer [i ]-> name );
20522050 }
20532051 return asset_names ;
20542052 }
@@ -2068,8 +2066,8 @@ string_array_t *base_combo_enum_texts(char *node_type) {
20682066any_array_t * base_combo_enum_images (char * node_type ) {
20692067 if (string_equals (node_type , "TEX_IMAGE" )) {
20702068 any_array_t * ar = any_array_create (0 );
2071- for (i32 i = 0 ; i < project_assets -> length ; ++ i ) {
2072- asset_t * asset = project_assets -> buffer [i ];
2069+ for (i32 i = 0 ; i < g_project -> _ -> assets -> length ; ++ i ) {
2070+ asset_t * asset = g_project -> _ -> assets -> buffer [i ];
20732071 gpu_texture_t * img = project_get_image (asset );
20742072 any_array_push (ar , img );
20752073 }
@@ -2078,26 +2076,26 @@ any_array_t *base_combo_enum_images(char *node_type) {
20782076
20792077 if (string_equals (node_type , "LAYER" ) || string_equals (node_type , "LAYER_MASK" )) {
20802078 any_array_t * ar = any_array_create (0 );
2081- for (i32 i = 0 ; i < project_layers -> length ; ++ i ) {
2082- slot_layer_t * l = project_layers -> buffer [i ];
2079+ for (i32 i = 0 ; i < g_project -> _ -> layers -> length ; ++ i ) {
2080+ slot_layer_t * l = g_project -> _ -> layers -> buffer [i ];
20832081 any_array_push (ar , l -> texpaint_preview );
20842082 }
20852083 return ar ;
20862084 }
20872085
20882086 if (string_equals (node_type , "MATERIAL" )) {
20892087 any_array_t * ar = any_array_create (0 );
2090- for (i32 i = 0 ; i < project_materials -> length ; ++ i ) {
2091- slot_material_t * m = project_materials -> buffer [i ];
2088+ for (i32 i = 0 ; i < g_project -> _ -> materials -> length ; ++ i ) {
2089+ slot_material_t * m = g_project -> _ -> materials -> buffer [i ];
20922090 any_array_push (ar , m -> image_icon );
20932091 }
20942092 return ar ;
20952093 }
20962094
20972095 if (string_equals (node_type , "image_texture_node" )) {
20982096 any_array_t * ar = any_array_create (0 );
2099- for (i32 i = 0 ; i < project_assets -> length ; ++ i ) {
2100- asset_t * asset = project_assets -> buffer [i ];
2097+ for (i32 i = 0 ; i < g_project -> _ -> assets -> length ; ++ i ) {
2098+ asset_t * asset = g_project -> _ -> assets -> buffer [i ];
21012099 gpu_texture_t * img = project_get_image (asset );
21022100 any_array_push (ar , img );
21032101 }
@@ -2108,8 +2106,8 @@ any_array_t *base_combo_enum_images(char *node_type) {
21082106}
21092107
21102108i32 base_get_asset_index (char * file_name ) {
2111- for (i32 i = 0 ; i < project_assets -> length ; ++ i ) {
2112- if (string_equals (project_assets -> buffer [i ]-> name , file_name )) {
2109+ for (i32 i = 0 ; i < g_project -> _ -> assets -> length ; ++ i ) {
2110+ if (string_equals (g_project -> _ -> assets -> buffer [i ]-> name , file_name )) {
21132111 return i ;
21142112 }
21152113 }
@@ -2442,8 +2440,8 @@ void base_update_workflow_create_sculpt_layer(void *_) {
24422440
24432441void base_update_workflow () {
24442442 // Update Material Output nodes
2445- for (i32 i = 0 ; i < project_materials -> length ; ++ i ) {
2446- ui_node_array_t * nodes = project_materials -> buffer [i ]-> canvas -> nodes ;
2443+ for (i32 i = 0 ; i < g_project -> _ -> materials -> length ; ++ i ) {
2444+ ui_node_array_t * nodes = g_project -> _ -> materials -> buffer [i ]-> canvas -> nodes ;
24472445 for (i32 j = 0 ; j < nodes -> length ; ++ j ) {
24482446 if (string_equals (nodes -> buffer [j ]-> type , "OUTPUT_MATERIAL_PBR" )) {
24492447 nodes -> buffer [j ]-> inputs -> length = g_config -> workflow == WORKFLOW_PBR ? 9 : 2 ;
@@ -2454,9 +2452,9 @@ void base_update_workflow() {
24542452
24552453 if (g_config -> workflow == WORKFLOW_SCULPT ) {
24562454 slot_layer_t * first_sculpt = NULL ;
2457- for (i32 i = project_layers -> length - 1 ; i >= 0 ; -- i ) {
2458- if (project_layers -> buffer [i ]-> texpaint_sculpt != NULL ) {
2459- first_sculpt = project_layers -> buffer [i ];
2455+ for (i32 i = g_project -> _ -> layers -> length - 1 ; i >= 0 ; -- i ) {
2456+ if (g_project -> _ -> layers -> buffer [i ]-> texpaint_sculpt != NULL ) {
2457+ first_sculpt = g_project -> _ -> layers -> buffer [i ];
24602458 break ;
24612459 }
24622460 }
@@ -2469,8 +2467,8 @@ void base_update_workflow() {
24692467 }
24702468 }
24712469 else {
2472- for (i32 i = project_layers -> length - 1 ; i >= 0 ; -- i ) {
2473- slot_layer_t * l = project_layers -> buffer [i ];
2470+ for (i32 i = g_project -> _ -> layers -> length - 1 ; i >= 0 ; -- i ) {
2471+ slot_layer_t * l = g_project -> _ -> layers -> buffer [i ];
24742472 if (l -> texpaint_sculpt == NULL && slot_layer_is_layer (l )) {
24752473 context_set_layer (l );
24762474 break ;
@@ -2480,13 +2478,13 @@ void base_update_workflow() {
24802478}
24812479
24822480void base_run_in_player () {
2483- if (string_equals (project_filepath , "" )) {
2481+ if (string_equals (g_project -> _ -> filepath , "" )) {
24842482 console_error (tr ("Save project first" ));
24852483 return ;
24862484 }
24872485 export_arm_run_project ();
24882486 char * bin = iron_get_arg (0 );
2489- iron_sys_command (string ("%s %s --player" , bin , project_filepath ));
2487+ iron_sys_command (string ("%s %s --player" , bin , g_project -> _ -> filepath ));
24902488 // iron_exec_async()
24912489}
24922490
0 commit comments