From 9562d38144cec0f041f4b34924be1b373ffe59f1 Mon Sep 17 00:00:00 2001 From: outfrost Date: Tue, 14 Jul 2020 23:46:16 +0200 Subject: [PATCH] A bit of cleanup --- src/engine/logger.h | 6 ++++-- src/engine/tga.h | 11 +++++++---- src/game/level.c | 17 ++++++++++++++++- src/game/level.h | 30 +++++++++++------------------- 4 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/engine/logger.h b/src/engine/logger.h index 4529738..c6dc808 100644 --- a/src/engine/logger.h +++ b/src/engine/logger.h @@ -1,12 +1,14 @@ #ifndef ENGINE_LOGGER_H_ #define ENGINE_LOGGER_H_ -typedef enum { +enum LogLevel { LOGLEVEL_ERROR, LOGLEVEL_WARNING, LOGLEVEL_INFO, LOGLEVEL_DEBUG -} LogLevel; +}; + +typedef enum LogLevel LogLevel; extern LogLevel logLevel; diff --git a/src/engine/tga.h b/src/engine/tga.h index 0936fa8..01e9ca8 100644 --- a/src/engine/tga.h +++ b/src/engine/tga.h @@ -3,8 +3,11 @@ #include +typedef struct TgaHeader TgaHeader; +typedef struct TgaImage TgaImage; + #pragma pack(push, 1) -typedef struct { +struct TgaHeader { GLubyte idLength; GLbyte colorMapType; GLbyte imageType; @@ -17,15 +20,15 @@ typedef struct { GLushort imageHeight; GLubyte imageBpp; GLbyte imageDescriptor; -} TgaHeader; +}; #pragma pack(pop) -typedef struct { +struct TgaImage { TgaHeader header; GLenum imageFormat; GLint imageComponents; GLbyte* bytes; -} TgaImage; +}; TgaImage* readTga(const char* path); diff --git a/src/game/level.c b/src/game/level.c index 2b45eec..fd7f8ac 100644 --- a/src/game/level.c +++ b/src/game/level.c @@ -5,11 +5,14 @@ #include "engine/logger.h" #include "engine/scene.h" +#include "engine/tga.h" #include "player.h" BlockGrid levelGrid; +static const float BLOCKGRID_CELL_SIZE = 2.5f; + static Block blockEmpty = { .type = BLOCKTYPE_SPACE, .solid = NULL }; static Block blockWall01 = { .type = BLOCKTYPE_OBSTACLE, @@ -17,6 +20,10 @@ static Block blockWall01 = { .type = BLOCKTYPE_OBSTACLE, static Transform playerSpawnTransform; +static void buildLevelFromImage(const TgaImage* image); +static inline Block* getBlockFromGrid(BlockGrid grid, size_t x, size_t z); +static inline void setBlockInGrid(BlockGrid grid, size_t x, size_t z, Block* block); + void initLevel() { @@ -49,7 +56,7 @@ void startLevel() { spawnPlayer(playerSpawnTransform); } -void buildLevelFromImage(TgaImage* image) { +static void buildLevelFromImage(const TgaImage* image) { if (image == NULL) { logError("Null image received, cannot build level"); return; @@ -94,3 +101,11 @@ void buildLevelFromImage(TgaImage* image) { levelGrid = newGrid; } + +static inline Block* getBlockFromGrid(BlockGrid grid, size_t x, size_t z) { + return grid.blocks[(z * grid.width) + x]; +} + +static inline void setBlockInGrid(BlockGrid grid, size_t x, size_t z, Block* block) { + grid.blocks[(z * grid.width) + x] = block; +} diff --git a/src/game/level.h b/src/game/level.h index 4d6992e..097b73a 100644 --- a/src/game/level.h +++ b/src/game/level.h @@ -4,40 +4,32 @@ #include #include "engine/asset.h" -#include "engine/tga.h" -typedef enum { +enum BlockType { BLOCKTYPE_SPACE, BLOCKTYPE_OBSTACLE_X, BLOCKTYPE_OBSTACLE_Z, BLOCKTYPE_OBSTACLE -} BlockType; +}; -typedef struct { - const BlockType type; +typedef enum BlockType BlockType; +typedef struct Block Block; +typedef struct BlockGrid BlockGrid; + +struct Block { + BlockType type; const Solid* solid; -} Block; +}; -typedef struct { +struct BlockGrid { size_t width; size_t depth; Block** blocks; -} BlockGrid; - -#define BLOCKGRID_CELL_SIZE 2.5f +}; extern BlockGrid levelGrid; void initLevel(); void startLevel(); -void buildLevelFromImage(TgaImage* image); - -static inline Block* getBlockFromGrid(BlockGrid grid, size_t x, size_t z) { - return grid.blocks[(z * grid.width) + x]; -} - -static inline void setBlockInGrid(BlockGrid grid, size_t x, size_t z, Block* block) { - grid.blocks[(z * grid.width) + x] = block; -} #endif // LEVEL_H_ -- 2.44.0