techkaczynski.dev / code

summaryrefslogtreecommitdiff
path: root/res.c
diff options
context:
space:
mode:
Diffstat (limited to 'res.c')
-rw-r--r--res.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/res.c b/res.c
index b1ed86f..ef4f2c2 100644
--- a/res.c
+++ b/res.c
@@ -174,6 +174,34 @@ void
res_update(void) {
}
+char**
+asset_mdl_keys(int *count) {
+ *count = 0;
+
+ if (!res.assets.base.nnodes) {
+ return NULL;
+ }
+
+ char **keys = malloc(res.assets.base.nnodes * sizeof(*keys));
+ if (!keys) {
+ perror("asset_mdl_keys: mem allocation failed.");
+ exit(1);
+ }
+
+ map_iter_t iter = map_iter(&res.assets);
+ cstr key;
+
+ while ((key = map_next(&res.assets, &iter))) {
+ if (strcmp(GetFileExtension(key), ".glb") != 0) {
+ continue;
+ }
+
+ keys[(*count)++] = map_get(&res.assets, key)->path;
+ }
+
+ return keys;
+}
+
Asset*
asset_get(cstr key) {
Asset *asset = map_get(&res.assets, key);