summaryrefslogtreecommitdiff
path: root/lib/world.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/world.h')
-rw-r--r--lib/world.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/world.h b/lib/world.h
new file mode 100644
index 0000000..40c3fef
--- /dev/null
+++ b/lib/world.h
@@ -0,0 +1,31 @@
+#define WORLD_MAX_ENTITIES 5000
+
+enum {
+ ENTITY_NONE,
+ ENTITY_BALL
+};
+
+struct entity_ball {
+ vec2 pos;
+ vec2 vel;
+};
+
+union entity_union {
+ struct entity_ball ball;
+};
+
+struct entity {
+ int kind;
+ union entity_union e;
+};
+
+struct world;
+
+struct world *dp_world_create();
+void dp_world_free(struct world *);
+
+int dp_world_create_entity(struct world *, int kind);
+struct entity *dp_world_find_entity(struct world *, int entity_id);
+int dp_world_remove_entity(struct world *, int entity_id);
+
+int dp_world_tick(struct world *, double delta);