fix new param tree generation; stop string viz for padding members; fix relative file path serialization in new cfg saving path

This commit is contained in:
Ryan Fleury
2024-08-27 09:13:28 -07:00
parent 6a8c110b83
commit a97c8bd070
+9 -5
View File
@@ -938,6 +938,10 @@ df_view_store_param(DF_View *view, String8 key, String8 value)
view->params_roots[view->params_write_gen%ArrayCount(view->params_arenas)] = md_tree_copy(new_params_arena, view->params_roots[view->params_read_gen%ArrayCount(view->params_arenas)]); view->params_roots[view->params_write_gen%ArrayCount(view->params_arenas)] = md_tree_copy(new_params_arena, view->params_roots[view->params_read_gen%ArrayCount(view->params_arenas)]);
} }
MD_Node *new_params_root = view->params_roots[view->params_write_gen%ArrayCount(view->params_arenas)]; MD_Node *new_params_root = view->params_roots[view->params_write_gen%ArrayCount(view->params_arenas)];
if(md_node_is_nil(new_params_root))
{
new_params_root = view->params_roots[view->params_write_gen%ArrayCount(view->params_arenas)] = md_push_node(new_params_arena, MD_NodeKind_Main, 0, str8_zero(), str8_zero(), 0);
}
MD_Node *key_node = md_child_from_string(new_params_root, key, 0); MD_Node *key_node = md_child_from_string(new_params_root, key, 0);
if(md_node_is_nil(key_node)) if(md_node_is_nil(key_node))
{ {
@@ -8628,7 +8632,7 @@ df_append_value_strings_from_eval(Arena *arena, DF_EvalVizStringFlags flags, U32
// rjf: special case: push strings for textual string content // rjf: special case: push strings for textual string content
B32 did_content = 0; B32 did_content = 0;
if(!did_content && array_is_string && !has_array) if(!did_content && array_is_string && !has_array && (member == 0 || member->kind != E_MemberKind_Padding))
{ {
U64 element_size = e_type_byte_size_from_key(direct_type_key); U64 element_size = e_type_byte_size_from_key(direct_type_key);
did_content = 1; did_content = 1;
@@ -9473,15 +9477,15 @@ df_cfg_strings_from_gfx(Arena *arena, String8 root_path, DF_CfgSrc source)
{ {
Temp scratch = scratch_begin(&arena, 1); Temp scratch = scratch_begin(&arena, 1);
String8 query_raw = str8(view->query_buffer, view->query_string_size); String8 query_raw = str8(view->query_buffer, view->query_string_size);
String8 query_sanitized = df_cfg_escaped_from_raw_string(scratch.arena, query_raw);
{ {
String8 query_file_path = df_file_path_from_eval_string(scratch.arena, query_sanitized); String8 query_file_path = df_file_path_from_eval_string(scratch.arena, query_raw);
if(query_file_path.size != 0) if(query_file_path.size != 0)
{ {
query_file_path = path_relative_dst_from_absolute_dst_src(scratch.arena, query_file_path, root_path); query_file_path = path_relative_dst_from_absolute_dst_src(scratch.arena, query_file_path, root_path);
query_sanitized = push_str8f(scratch.arena, "file:\"%S\"", query_file_path); query_raw = push_str8f(scratch.arena, "file:\"%S\"", query_file_path);
} }
} }
String8 query_sanitized = df_cfg_escaped_from_raw_string(scratch.arena, query_raw);
str8_list_pushf(arena, &strs, "query:{\"%S\"} ", query_sanitized); str8_list_pushf(arena, &strs, "query:{\"%S\"} ", query_sanitized);
scratch_end(scratch); scratch_end(scratch);
} }
@@ -9517,7 +9521,7 @@ df_cfg_strings_from_gfx(Arena *arena, String8 root_path, DF_CfgSrc source)
str8_list_pushf(arena, &strs, "%S", n->string); str8_list_pushf(arena, &strs, "%S", n->string);
if(n->first != &md_nil_node) if(n->first != &md_nil_node)
{ {
str8_list_pushf(arena, &strs, ":{ "); str8_list_pushf(arena, &strs, ":{");
} }
for(S32 pop_idx = 0; pop_idx < rec.pop_count; pop_idx += 1) for(S32 pop_idx = 0; pop_idx < rec.pop_count; pop_idx += 1)
{ {