48 lines
597 B
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;
|
|
}
|
|
}
|