#ifndef ENGINE_H #define ENGINE_H #include #include #include #include #include #include #include #include #include #include #include #include #include "scolor.hpp" #include "tiny_obj_loader.h" #ifdef MAIN #define EXTERN #define INIT(X) = X #else #define EXTERN extern #define INIT(X) #endif using namespace glm; using namespace std; // Note: These will have to be extern everywhere except main.cpp struct key_status_struct { bool w, s, a, d; }; #ifdef MAIN struct key_status_struct key_status {false, false, false, false}; #else extern struct key_status_struct key_status; #endif EXTERN float height INIT(800); EXTERN float width INIT(1280); EXTERN float player_x INIT(0), player_y INIT(0), player_z INIT(9); EXTERN float player_heading INIT(0); EXTERN float player_elevation INIT(0); EXTERN float player_yvel INIT(0.0f); EXTERN const float gravity INIT(0.20f); EXTERN GLFWwindow* window; EXTERN bool shutdown INIT(false); EXTERN bool cursor_free INIT(false); EXTERN bool invincible INIT(true); EXTERN vec3 up_direction INIT(vec3(0, 1, 0)); EXTERN bool draw_menu INIT(true); #define GBLEN (1024*32) EXTERN char *general_buffer; GLuint make_shader(const char *filename, GLenum shaderType); #include "base_class.h" #include "moving_objects.h" #include "monster_box.h" #include "chalet.h" #include "stone.h" #include "helping_cat.h" #endif