]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/boxes.h
(#694) Fix box pushing mechanics
[nothing.git] / src / game / level / boxes.h
index bf11b9b30c00d281831b10dc5a61a4f4bc16c13b..207d1278906c76e6c9f6444cc9c99fcbd65daf55 100644 (file)
@@ -1,24 +1,28 @@
 #ifndef BOXES_H_
 #define BOXES_H_
 
-#include "game/level/platforms.h"
 #include "game/camera.h"
+#include "game/level/platforms.h"
+#include "lava.h"
+#include "ebisp/expr.h"
+
+typedef struct Boxes Boxes;
+typedef struct Player Player;
+typedef struct Physical_world Physical_world;
+typedef struct LineStream LineStream;
+
+Boxes *create_boxes_from_line_stream(LineStream *line_stream, RigidBodies *rigid_bodies);
+void destroy_boxes(Boxes *boxes);
 
-typedef struct boxes_t boxes_t;
-typedef struct player_t player_t;
+int boxes_render(Boxes *boxes, Camera *camera);
+int boxes_update(Boxes *boxes, float delta_time);
 
-boxes_t *create_boxes_from_stream(FILE *stream);
-void destroy_boxes(boxes_t *boxes);
+void boxes_float_in_lava(Boxes *boxes, Lava *lava);
 
-int boxes_render(boxes_t *boxes, camera_t *camera);
-int boxes_update(boxes_t *boxes, float delta_time);
-void boxes_rect_object_collide(const boxes_t *boxes,
-                               rect_t object,
-                               int sides[RECT_SIDE_N]);
-void boxes_collide_with_platforms(boxes_t *boxes,
-                                  const platforms_t *platforms);
-void boxes_collide_with_player(boxes_t *boxes,
-                               player_t *player);
+int boxes_add_to_physical_world(const Boxes *boxes,
+                                Physical_world *Physical_world);
 
+struct EvalResult
+boxes_send(Boxes *boxes, Gc *gc, struct Scope *scope, struct Expr path);
 
 #endif  // BOXES_H_