add legacy config deserialization paths, for old config files

This commit is contained in:
Ryan Fleury
2024-08-14 15:25:11 -07:00
parent bb9e5057d7
commit 4a2aaf650a
2 changed files with 24 additions and 7 deletions
+21 -2
View File
@@ -7739,7 +7739,9 @@ df_core_begin_frame(Arena *arena, DF_CmdList *cmds, F32 dt)
}
// rjf: specifically named entity equipment
if(str8_match(child->string, str8_lit("name"), StringMatchFlag_CaseInsensitive) && child->first != &df_g_nil_cfg_node)
if((str8_match(child->string, str8_lit("name"), StringMatchFlag_CaseInsensitive) ||
str8_match(child->string, str8_lit("label"), StringMatchFlag_CaseInsensitive)) &&
child->first != &df_g_nil_cfg_node)
{
String8 string = df_cfg_raw_from_escaped_string(scratch.arena, child->first->string);
if(df_g_entity_kind_flags_table[t->entity->kind] & DF_EntityKindFlag_NameIsPath)
@@ -7748,10 +7750,25 @@ df_core_begin_frame(Arena *arena, DF_CmdList *cmds, F32 dt)
}
df_entity_equip_name(t->entity, string);
}
if((str8_match(child->string, str8_lit("active"), StringMatchFlag_CaseInsensitive) ||
str8_match(child->string, str8_lit("enabled"), StringMatchFlag_CaseInsensitive)) &&
child->first != &df_g_nil_cfg_node)
{
df_entity_equip_disabled(t->entity, !str8_match(child->first->string, str8_lit("1"), 0));
}
if(str8_match(child->string, str8_lit("disabled"), StringMatchFlag_CaseInsensitive) && child->first != &df_g_nil_cfg_node)
{
df_entity_equip_disabled(t->entity, str8_match(child->first->string, str8_lit("1"), 0));
}
if(str8_match(child->string, str8_lit("hsva"), StringMatchFlag_CaseInsensitive) && child->first != &df_g_nil_cfg_node)
{
Vec4F32 hsva = {0};
hsva.x = (F32)f64_from_str8(child->first->string);
hsva.y = (F32)f64_from_str8(child->first->next->string);
hsva.z = (F32)f64_from_str8(child->first->next->next->string);
hsva.w = (F32)f64_from_str8(child->first->next->next->next->string);
df_entity_equip_color_hsva(t->entity, hsva);
}
if(str8_match(child->string, str8_lit("color"), StringMatchFlag_CaseInsensitive) && child->first != &df_g_nil_cfg_node)
{
Vec4F32 rgba = rgba_from_hex_string_4f32(child->first->string);
@@ -7765,7 +7782,9 @@ df_core_begin_frame(Arena *arena, DF_CmdList *cmds, F32 dt)
TxtPt pt = txt_pt(line, 1);
df_entity_equip_txt_pt(t->entity, pt);
}
if(str8_match(child->string, str8_lit("vaddr"), StringMatchFlag_CaseInsensitive) && child->first != &df_g_nil_cfg_node)
if((str8_match(child->string, str8_lit("vaddr"), StringMatchFlag_CaseInsensitive) ||
str8_match(child->string, str8_lit("addr"), StringMatchFlag_CaseInsensitive)) &&
child->first != &df_g_nil_cfg_node)
{
U64 vaddr = 0;
try_u64_from_str8_c_rules(child->first->string, &vaddr);