#include #include #include #include #include #include #include #include #include #include #include #include "raygui.h" #ifndef GAME_COMMON_H #define GAME_COMMON_H // Types be like. typedef struct Game Game; typedef struct Entity Entity; #define WINDOW_WIDTH 960 #define WINDOW_HEIGHT 540 // Bit shit. #define SET_BIT(b, n) (b | (0x1 << n)) #define CLEAR_BIT(b, n) (b & ~(0x1 << n)) #define IS_BIT_SET(b, n) ((b >> n) & 0x1) #define TOGGLE_BIT(b, n) (b ^ (0x1 << n)) #define HAS_FLAG(v, f) ((v & f) == f) // Memory management. #define KF_MALLOC(size) malloc(size) #define KF_CALLOC(nmemb, size) calloc(nmemb, size) #define KF_REALLOC(ptr, size) realloc(ptr, size) #define KF_REALLOCARRAY(ptr, nmemb, size) reallocarray(ptr, nmemb, size) #define KF_FREE(ptr) free(ptr) #define ALLOCATION_ERROR TraceLog(LOG_ERROR, "Allocation error in %s:%d", __FILE__, __LINE__) // Errors. typedef enum KfError { KFERROR = -1, KFSUCCESS = 0 } KfError; #endif