]> git.lizzy.rs Git - nothing.git/blob - src/game/level/player.h
Merge pull request #1255 from tsoding/1253
[nothing.git] / src / game / level / player.h
1 #ifndef PLAYER_H_
2 #define PLAYER_H_
3
4 #include <SDL.h>
5
6 #include "game/camera.h"
7 #include "game/sound_samples.h"
8 #include "lava.h"
9 #include "platforms.h"
10 #include "boxes.h"
11 #include "game/level/level_editor/player_layer.h"
12
13 typedef struct Player Player;
14 typedef struct Goals Goals;
15 typedef struct RigidBodies RigidBodies;
16
17 Player *create_player_from_player_layer(const PlayerLayer *player_layer,
18                                         RigidBodies *rigid_bodies);
19 void destroy_player(Player * player);
20
21 int player_render(const Player * player,
22                   const Camera *camera);
23 void player_update(Player * player,
24                    float delta_time);
25 void player_touches_rect_sides(Player *player,
26                                Rect object,
27                                int sides[RECT_SIDE_N]);
28
29 int player_sound(Player *player,
30                  Sound_samples *sound_samples);
31 void player_checkpoint(Player *player,
32                        Vec2f checkpoint);
33
34 void player_move_left(Player *player);
35 void player_move_right(Player *player);
36 void player_stop(Player *player);
37 void player_jump(Player *player);
38 void player_die(Player *player);
39
40 void player_focus_camera(Player *player,
41                          Camera *camera);
42 void player_die_from_lava(Player *player,
43                           const Lava *lava);
44
45 bool player_overlaps_rect(const Player *player,
46                           Rect rect);
47
48 Rect player_hitbox(const Player *player);
49
50 #endif  // PLAYER_H_