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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#ifndef obj_h
#define obj_h
#include "rect.h"
struct App;
struct Map;
struct Renderer;
struct World;
typedef enum {
face_left,
face_right
} Face;
typedef struct {
int x, y, vx, vy;
int frame;
int anim;
int grounded, headbutted, on_ramp, jumping;
int cooldown, slashing;
Face face;
Rect rect;
} Player;
void init_player(Player* p);
void update_player(
Player* p,
struct World* w,
const struct App* app,
const struct Map* map
);
void ren_player(const Player* p, struct Renderer* r);
typedef struct {
int x, y;
int frame, anim;
int bmp;
Rect rect;
} Particle;
void init_particle(Particle* p, int x, int y, int anim, int bmp);
int update_particle(Particle* p);
void ren_particle(const Particle* p, struct Renderer* r);
typedef enum {
enemy_demon
} Enemy_Type;
typedef struct {
Enemy_Type t;
int x, y, vx, vy;
int hp, frame, anim;
int grounded, headbutted, on_ramp;
int state;
Face face;
Rect rect;
} Enemy;
void init_enemy(Enemy* e, Enemy_Type t, int x, int y);
int update_enemy(Enemy* e, struct World* w);
void ren_enemy(const Enemy* e, struct Renderer* r);
typedef struct {
Rect r;
int vx, vy;
int hp, life, friendly;
} Deathzone;
void init_deathzone(
Deathzone* d,
const Rect* r,
int vx,
int vy,
int hp,
int life,
int friendly
);
int update_deathzone(Deathzone* d);
#endif
|