quite a lot of changes
[carveJwlIkooP6JGAAIwe30JlM.git] / addon_types.h
diff --git a/addon_types.h b/addon_types.h
new file mode 100644 (file)
index 0000000..fa8ab96
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef ADDON_TYPES_H
+#define ADDON_TYPES_H
+
+enum addon_type{
+   k_addon_type_none   = 0,
+   k_addon_type_board  = 1,
+   k_addon_type_world  = 2,
+   k_addon_type_player = 3,
+   k_addon_type_max
+};
+
+#ifdef VG_GAME
+
+#include "vg/vg_stdint.h"
+#include "stddef.h"
+#include "world.h"
+#include "player.h"
+
+struct addon_type_info {
+   size_t cache_stride;
+   u16 cache_count;
+   const char *local_content_folder;
+}
+static addon_type_infos[] = {
+   [k_addon_type_board] = { 
+      .local_content_folder = "boards/",
+      .cache_stride = sizeof(struct player_board),
+      .cache_count  = 10
+   },
+   [k_addon_type_player] = {
+      .local_content_folder = "playermodels/",
+      .cache_stride = sizeof(struct player_model),
+      .cache_count  = 10
+   },
+   [k_addon_type_world] = {
+      .local_content_folder = "maps/"
+   }
+};
+
+#endif
+
+#endif /* ADDON_TYPES_H */