(#226) introduce debug_tree entity

master
rexim 2018-07-30 01:10:18 +07:00
parent b6e2ce0f76
commit dcd2c7c1d0
3 changed files with 46 additions and 0 deletions

View File

@ -20,6 +20,7 @@ set(SOURCE_FILES
src/color.c
src/game.c
src/game/camera.c
src/game/debug_tree.c
src/game/level.c
src/game/level/background.c
src/game/level/boxes.c
@ -52,6 +53,7 @@ set(HEADER_FILES
src/color.h
src/game.h
src/game/camera.h
src/game/debug_tree.h
src/game/level.h
src/game/level/background.h
src/game/level/boxes.h

35
src/game/debug_tree.c Normal file
View File

@ -0,0 +1,35 @@
#include <assert.h>
#include <stdlib.h>
#include "debug_tree.h"
#include "system/error.h"
#include "system/lt.h"
struct debug_tree_t
{
lt_t *lt;
};
debug_tree_t * create_debug_tree()
{
lt_t * const lt = create_lt();
if (lt == NULL) {
return NULL;
}
debug_tree_t * const debug_tree = PUSH_LT(lt, malloc(sizeof(debug_tree_t)), free);
if (debug_tree == NULL) {
throw_error(ERROR_TYPE_LIBC);
RETURN_LT(lt, NULL);
}
debug_tree->lt = lt;
return debug_tree;
}
void destroy_debug_tree(debug_tree_t *debug_tree)
{
assert(debug_tree);
RETURN_LT0(debug_tree->lt);
}

9
src/game/debug_tree.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef DEBUG_TREE_H_
#define DEBUG_TREE_H_
typedef struct debug_tree_t debug_tree_t;
debug_tree_t *create_debug_tree(void);
void destroy_debug_tree(debug_tree_t *debug_tree);
#endif // DEBUG_TREE_H_