Project

General

Profile

Statistics
| Revision:

root / proj / include / proj_structures.h @ 322

History | View | Annotate | Download (1.42 KB)

1 312 up20180655
#ifndef PROJ_STRUCTURES_H_INCLUDED
2
#define PROJ_STRUCTURES_H_INCLUDED
3
4
#include <stdint.h>
5 320 up20180655
#include "ent.h"
6 312 up20180655
7
typedef struct keys {
8
    uint8_t w_pressed       : 1;
9
    uint8_t a_pressed       : 1;
10
    uint8_t s_pressed       : 1;
11
    uint8_t d_pressed       : 1;
12
    uint8_t ctrl_pressed    : 1;
13
    uint8_t plus_pressed    : 1;
14
    uint8_t minus_pressed   : 1;
15
    uint8_t lb_pressed      : 1;
16
} keys_t;
17
18 321 up20180642
typedef struct {
19 312 up20180655
    // host
20
    double  host_x;
21
    double  host_y;
22 320 up20180655
    double  host_angle;
23 312 up20180655
    double  host_health;
24
    double  host_current_health;
25
26
    // remote
27
    double  remote_x;
28
    double  remote_y;
29 320 up20180655
    double  remote_angle;
30 312 up20180655
    double  remote_health;
31
    double  remote_current_health;
32
33
    // bullets
34
    size_t  no_bullets;
35
    double *bullets_x;
36
    double *bullets_y;
37
    double *bullets_vx;
38
    double *bullets_vy;
39
    bool   *bullets_shooter; // false for host, true for remote
40
} host_info_t;
41
42 321 up20180642
typedef struct {
43 312 up20180655
    keys_t  remote_keys_pressed;
44 320 up20180655
    double  remote_angle;
45 312 up20180655
} remote_info_t;
46
47 321 up20180642
typedef struct {
48 320 up20180655
    bool   new_bullet;
49
} bullet_info_t;
50
51
host_info_t* host_info_ctor(gunner_t *host, gunner_t *remote);
52
53 312 up20180655
void host_info_dtor(host_info_t *p);
54
55 320 up20180655
remote_info_t* remote_info_ctor();
56
57 312 up20180655
void remote_info_dtor(remote_info_t *p);
58
59 320 up20180655
bullet_info_t* bullet_info_ctor();
60
61
void bullet_info_dtor(bullet_info_t *p);
62
63 312 up20180655
#endif /* end of include guard: PROJ_STRUCTURES_H_INCLUDED */