summaryrefslogtreecommitdiff
path: root/in_practice/breakout/powerup.h
blob: b80ea74bee12e5baf1ca89b4ac3e59f3997e20cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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