summaryrefslogtreecommitdiff
path: root/in_practice/breakout/powerup.h
diff options
context:
space:
mode:
Diffstat (limited to 'in_practice/breakout/powerup.h')
-rw-r--r--in_practice/breakout/powerup.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/in_practice/breakout/powerup.h b/in_practice/breakout/powerup.h
new file mode 100644
index 0000000..b80ea74
--- /dev/null
+++ b/in_practice/breakout/powerup.h
@@ -0,0 +1,36 @@
+#ifndef POWERUP_H
+#define POWERUP_H
+
+#include "types.h"
+#include "my_math.h"
+#include "object.h"
+
+enum powerup_type {
+ powerup_none,
+ powerup_speed,
+ powerup_sticky,
+ powerup_pass,
+ powerup_increase,
+ powerup_confuse,
+ powerup_chaos
+};
+
+struct powerup {
+ v2 pos;
+ v2 vel;
+ v2 size;
+ v3 color;
+ enum powerup_type type;
+ f32 duration;
+ i32 active;
+ i32 destroyed;
+ u32 texture;
+};
+
+extern v2 default_powerup_size;
+
+struct powerup spawn_powerup(v2 pos, v3 color, enum powerup_type type, f32 duration, u32 texture);
+i32 check_powerup_collision(struct powerup powerup, struct object obj);
+void render_powerup(struct sprite_renderer renderer, struct powerup powerup);
+
+#endif