#pragma once #include "3ds/types.h" #include "level_types.h" #include /** * Advance the seek position of the given level file until a `#` is located, then handle which * type of hash statement it is * * This function stops its parsing pass when it reaches any other statement that is *not* a * hash statement (such as an object definition or attribute) * * @param file Level file to parse */ ParsedLevel* process_hash_statements(FILE* lfile); /** * Interpret the next strings as elements of a `#include` hash statement, up until a semicolon is reached * * @param file Level file to parse * @return List of files within the given `#include` */ char* process_include(FILE* lfile, ParsedLevel* pl); /** * Gets all models defined in an `#include` statement * * NOTE: Duplicate entries are not currently checked! It is advised to avoid duplicating `#include` * entries wherever possible * * @param file Level file to parse * @return List of all files to import */ char* get_model_imports(FILE* lfile); char* get_next_model_import(FILE* file); /** * */ u32 calculate_buffer_size();