#include "types.h" #include "constants.h" enum { STATE_INACTIVE = 0, STATE_ACTIVE, STATE_REMOVED, STATE_DEAD }; struct player { uint8_t state; uint8_t input; vec2 pos; vec2 vel; }; struct ball { uint8_t state; vec2 pos; vec2 vel; }; struct snapshot { char active; uint32_t tick; int32_t players_len; struct player *players; int32_t balls_len; struct ball *balls; }; int dp_snapshot_init(struct snapshot *, int32_t players_len, int32_t balls_len); void dp_snapshot_deinit(struct snapshot *); int dp_snapshot_put_player(struct snapshot *, int32_t id, const struct player *); struct player *dp_snapshot_get_player(struct snapshot *, int32_t id); int dp_snapshot_remove_player(struct snapshot *, int32_t id); int dp_snapshot_set_player_input(struct snapshot *, int32_t id, uint8_t input); int dp_snapshot_put_ball(struct snapshot *, int32_t id, const struct ball *); struct ball *dp_snapshot_get_ball(struct snapshot *, int32_t id); int dp_snapshot_remove_ball(struct snapshot *, int32_t id);