MCPcopy Create free account
hub / github.com/crownengine/crown / parse_unit_array_from_json

Function parse_unit_array_from_json

src/resource/unit_compiler.cpp:1141–1162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1139 }
1140
1141 s32 parse_unit_array_from_json(UnitCompiler &c, const char *units_array_json, CompileOptions &opts)
1142 {
1143 TempAllocator4096 ta;
1144 JsonArray units(ta);
1145 RETURN_IF_ERROR(sjson::parse_array(units, units_array_json));
1146
1147 Array<u32> original_units(default_allocator());
1148
1149 for (u32 i = 0; i < array::size(units); ++i) {
1150 s32 err = collect_prefabs(c, StringId64(), units[i], true, opts);
1151 ENSURE_OR_RETURN(UNIT_COMPILER, err == 0, opts);
1152 u32 original_unit = c._prefab_offsets[array::size(c._prefab_offsets) - 1];
1153 array::push_back(original_units, original_unit);
1154 }
1155
1156 for (u32 i = 0; i < array::size(units); ++i) {
1157 s32 err = parse_unit_internal(c, &c._prefab_data[original_units[i]], NULL, NULL, opts);
1158 ENSURE_OR_RETURN(UNIT_COMPILER, err == 0, opts);
1159 }
1160
1161 return flatten(c, opts);
1162 }
1163
1164 s32 flatten_unit(UnitCompiler &c, Unit *unit, u32 parent_unit_index, CompileOptions &opts)
1165 {

Callers 1

compileFunction · 0.85

Calls 6

collect_prefabsFunction · 0.85
parse_unit_internalFunction · 0.85
flattenFunction · 0.85
parse_arrayFunction · 0.50
sizeFunction · 0.50
StringId64Class · 0.50

Tested by

no test coverage detected