jtmm2/src/level.c

48 lines
597 B
C

#include "level.h"
#include <stdlib.h>
static struct Level level;
static void level_free(void);
void
level_init(void)
{
level.data = NULL;
}
void
level_deinit(void)
{
level_free();
}
void
level_load(const struct LevelBin *b)
{
int i = b->width * b->height;
level_free();
level.width = b->width;
level.height = b->height;
level.size = i;
level.data = malloc(i);
level.bin = b;
while (i-- > 0)
level.data[i] = b->data[i];
}
void
level_reload(void)
{
level_load(level.bin);
}
static void
level_free(void)
{
if (level.data != NULL) {
free(level.data);
level.data = NULL;
}
}