#ifndef GOALS_H_
#define GOALS_H_
-#include <SDL2/SDL.h>
+#include <SDL.h>
-#include "./game/level/camera.h"
-#include "./game/level/player.h"
-#include "./game/sound_medium.h"
+#include "game/camera.h"
+#include "game/level/player.h"
+#include "game/sound_samples.h"
+#include "config.h"
-typedef struct goals_t goals_t;
+typedef struct Goals Goals;
+typedef struct LineStream LineStream;
+typedef struct PointLayer PointLayer;
-goals_t *create_goals_from_stream(FILE *stream);
-void destroy_goals(goals_t *goals);
+Goals *create_goals_from_line_stream(LineStream *line_stream);
+Goals *create_goals_from_point_layer(const PointLayer *point_layer);
+void destroy_goals(Goals *goals);
-rect_t goals_hitbox(const goals_t *goals);
+Rect goals_hitbox(const Goals *goals);
-int goals_render(const goals_t *goals,
- SDL_Renderer *renderer,
- const camera_t *camera);
-int goals_sound(goals_t *goals,
- sound_medium_t *sound_medium);
-void goals_update(goals_t *goals,
+int goals_render(const Goals *goals,
+ const Camera *camera);
+int goals_sound(Goals *goals,
+ Sound_samples *sound_samples);
+void goals_update(Goals *goals,
float delta_time);
-void goals_hide(goals_t *goals,
- rect_t player_hitbox);
-void goals_checkpoint(const goals_t *goals,
- player_t *player);
-void goals_cue(goals_t *goals,
- SDL_Renderer *renderer,
- const camera_t *camera);
+void goals_checkpoint(const Goals *goals,
+ Player *player);
+void goals_cue(Goals *goals,
+ const Camera *camera);
+
+void goals_hide(Goals *goals, char goal_id[ENTITY_MAX_ID_SIZE]);
+void goals_show(Goals *goals, char goal_id[ENTITY_MAX_ID_SIZE]);
#endif // GOALS_H_