#include <struo/struo.h>
void struo_Options_init(struct struo_Options *options) {
alias_memory_clear(options, sizeof(*options));
alias_DirectoryList_init(&options->asset_paths);
alias_DirectoryList_init(&options->data_paths);
struo_Options_add_asset_path(options, "./assets");
struo_Options_add_data_path(options, "./data");
struo_Options_set_build_path(options, "./.struo_build");
struo_Options_set_output_path(options, "./.struo_output");
}
void struo_Options_add_asset_path(struct struo_Options *options, alias_str path) {
alias_DirectoryList_add_path(&options->asset_paths, NULL, path);
}
void struo_Options_add_data_path(struct struo_Options *options, alias_str path) {
alias_DirectoryList_add_path(&options->data_paths, NULL, path);
}
void struo_Options_set_build_path(struct struo_Options *options, alias_str path) {
if(options->build_path != NULL) {
alias_str_free(NULL, options->build_path);
}
options->build_path = alias_str_clone(NULL, path);
}
void struo_Options_set_output_path(struct struo_Options *options, alias_str path) {
if(options->output_path != NULL) {
alias_str_free(NULL, options->output_path);
}
options->output_path = alias_str_clone(NULL, path);
}