#include "game/level/platforms.h"
#include "lava.h"
-typedef struct boxes_t boxes_t;
-typedef struct player_t player_t;
-typedef struct physical_world_t physical_world_t;
+typedef struct Boxes Boxes;
+typedef struct Player Player;
+typedef struct LineStream LineStream;
+typedef struct Player Player;
+typedef struct RectLayer RectLayer;
-boxes_t *create_boxes_from_stream(FILE *stream);
-void destroy_boxes(boxes_t *boxes);
+Boxes *create_boxes_from_rect_layer(const RectLayer *layer, RigidBodies *rigid_bodies);
+void destroy_boxes(Boxes *boxes);
-solid_ref_t boxes_as_solid(boxes_t *boxes);
+int boxes_render(Boxes *boxes, const Camera *camera);
+int boxes_update(Boxes *boxes, float delta_time);
-int boxes_render(boxes_t *boxes, camera_t *camera);
-int boxes_update(boxes_t *boxes, float delta_time);
-void boxes_touches_rect_sides(const boxes_t *boxes,
- rect_t object,
- int sides[RECT_SIDE_N]);
+void boxes_float_in_lava(Boxes *boxes, Lava *lava);
-void boxes_collide_with_solid(boxes_t *boxes,
- solid_ref_t solid);
-void boxes_collide_with_lava(boxes_t *boxes,
- lava_t *lava);
-
-int boxes_add_to_physical_world(const boxes_t *boxes,
- physical_world_t *physical_world_t);
-
-/** \brief Implements solid_apply_force */
-void boxes_apply_force(boxes_t *boxes,
- vec_t force);
+int boxes_add_box(Boxes *boxes, Rect rect, Color color);
+int boxes_delete_at(Boxes *boxes, Vec2f position);
#endif // BOXES_H_