summary refs log tree commit diff
path: root/src/entity.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/entity.h')
-rw-r--r--src/entity.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/entity.h b/src/entity.h
new file mode 100644
index 0000000..5b34bac
--- /dev/null
+++ b/src/entity.h
@@ -0,0 +1,28 @@
+#pragma once
+
+#include "loader.h"
+
+struct entity {
+	int (*update)(struct entity *self);
+	int (*hurt)(struct entity *self, int damage);
+	int (*draw)(struct entity *self, int camx, int camy);
+	int x, y; // unsigned results in a bunch of weird edge cases
+	struct velocity {
+		signed x, y;
+	} velocity;
+	struct hitbox {
+		unsigned left, right, top, bottom;
+	} hitbox;
+	struct anim {
+		unsigned frame;
+		SDL_Rect rect;
+		unsigned length;
+	} anim;
+	unsigned state;
+	int hp;
+	int timer;
+	int iframes;
+	signed facing;
+	void *texture;
+	void *ext;
+};