decomp3: more engine stuff, support boxed stack arrays in compiler (#3424)

- `sync-info`
- `trajectory`
- `camera`
- `cam-update`
- `cam-states`
- `cam-states-dbg`
- `cam-master`
- `cam-layout`
- `cam-interface`
- `cam-combiner`

Closes #2016
This commit is contained in:
Hat Kid
2024-03-16 01:28:26 +01:00
committed by GitHub
parent f30b6927b7
commit 5a8b4e81f9
60 changed files with 28132 additions and 732 deletions
+6 -2
View File
@@ -3863,8 +3863,12 @@ void FunctionCallElement::update_from_stack(const Env& env,
if (got_stack_new) {
std::vector<Form*> stack_new_args;
stack_new_args.push_back(pool.form<ConstantTokenElement>("'stack"));
stack_new_args.push_back(pool.form<ConstantTokenElement>(
fmt::format("'{}", type_source_form->to_string(env))));
if (type_source_form->to_string(env) == "array") {
stack_new_args.push_back(pool.form<ConstantTokenElement>("'boxed-array"));
} else {
stack_new_args.push_back(pool.form<ConstantTokenElement>(
fmt::format("'{}", type_source_form->to_string(env))));
}
for (size_t i = 2; i < arg_forms.size(); i++) {
stack_new_args.push_back(arg_forms.at(i));
}