#include <SDL2/SDL.h>
-#include <assert.h>
+#include "system/stacktrace.h"
#include <stdio.h>
#include "color.h"
#include "game/level/player/rigid_rect.h"
#include "lava.h"
#include "math/rect.h"
-#include "system/error.h"
#include "system/lt.h"
#include "system/line_stream.h"
+#include "system/nth_alloc.h"
+#include "system/log.h"
#define LAVA_BOINGNESS 2500.0f
Lava *create_lava_from_line_stream(LineStream *line_stream)
{
- assert(line_stream);
+ trace_assert(line_stream);
Lt *lt = create_lt();
if (lt == NULL) {
return NULL;
}
- Lava *lava = PUSH_LT(lt, malloc(sizeof(Lava)), free);
+ Lava *lava = PUSH_LT(lt, nth_alloc(sizeof(Lava)), free);
if (lava == NULL) {
- throw_error(ERROR_TYPE_LIBC);
RETURN_LT(lt, NULL);
}
line_stream_next(line_stream),
"%lu",
&lava->rects_count) < 0) {
- throw_error(ERROR_TYPE_LIBC);
+ log_fail("Could not read amount of lavas\n");
RETURN_LT(lt, NULL);
}
- lava->rects = PUSH_LT(lt, malloc(sizeof(Wavy_rect*) * lava->rects_count), free);
+ lava->rects = PUSH_LT(lt, nth_alloc(sizeof(Wavy_rect*) * lava->rects_count), free);
if (lava->rects == NULL) {
- throw_error(ERROR_TYPE_LIBC);
RETURN_LT(lt, NULL);
}
void destroy_lava(Lava *lava)
{
- assert(lava);
+ trace_assert(lava);
RETURN_LT0(lava->lt);
}
int lava_render(const Lava *lava,
Camera *camera)
{
- assert(lava);
- assert(camera);
+ trace_assert(lava);
+ trace_assert(camera);
for (size_t i = 0; i < lava->rects_count; ++i) {
if (wavy_rect_render(lava->rects[i], camera) < 0) {
int lava_update(Lava *lava, float delta_time)
{
- assert(lava);
+ trace_assert(lava);
for (size_t i = 0; i < lava->rects_count; ++i) {
if (wavy_rect_update(lava->rects[i], delta_time) < 0) {
bool lava_overlaps_rect(const Lava *lava,
Rect rect)
{
- assert(lava);
+ trace_assert(lava);
for (size_t i = 0; i < lava->rects_count; ++i) {
if (rects_overlap(wavy_rect_hitbox(lava->rects[i]), rect)) {
void lava_float_rigid_rect(Lava *lava, Rigid_rect *object)
{
- assert(lava);
+ trace_assert(lava);
const Rect object_hitbox = rigid_rect_hitbox(object);
for (size_t i = 0; i < lava->rects_count; ++i) {