#include "lava.h"
#include "math/rect.h"
#include "system/lt.h"
-#include "system/line_stream.h"
#include "system/nth_alloc.h"
#include "system/log.h"
#include "game/level/level_editor/rect_layer.h"
Wavy_rect **rects;
};
-Lava *create_lava_from_line_stream(LineStream *line_stream)
-{
- trace_assert(line_stream);
-
- Lt *lt = create_lt();
-
- Lava *lava = PUSH_LT(lt, nth_calloc(1, sizeof(Lava)), free);
- if (lava == NULL) {
- RETURN_LT(lt, NULL);
- }
-
- if (sscanf(
- line_stream_next(line_stream),
- "%lu",
- &lava->rects_count) < 0) {
- log_fail("Could not read amount of lavas\n");
- RETURN_LT(lt, NULL);
- }
-
- lava->rects = PUSH_LT(lt, nth_calloc(1, sizeof(Wavy_rect*) * lava->rects_count), free);
- if (lava->rects == NULL) {
- RETURN_LT(lt, NULL);
- }
-
- for (size_t i = 0; i < lava->rects_count; ++i) {
- lava->rects[i] = PUSH_LT(lt, create_wavy_rect_from_line_stream(line_stream), destroy_wavy_rect);
- if (lava->rects[i] == NULL) {
- RETURN_LT(lt, NULL);
- }
- }
-
- lava->lt = lt;
-
- return lava;
-}
-
Lava *create_lava_from_rect_layer(const RectLayer *rect_layer)
{
Lt *lt = create_lt();
/* TODO(#449): lava does not render its id in debug mode */
int lava_render(const Lava *lava,
- Camera *camera)
+ const Camera *camera)
{
trace_assert(lava);
trace_assert(camera);