|
@@ -1,47 +1,43 @@
|
|
#define _WIN32_WINNT 0x400
|
|
#define _WIN32_WINNT 0x400
|
|
|
|
|
|
#include <assert.h>
|
|
#include <assert.h>
|
|
-#include <ctype.h>
|
|
|
|
-#include <stdio.h>
|
|
|
|
-#include <string.h>
|
|
|
|
-
|
|
|
|
-//#include "game.h"
|
|
|
|
-
|
|
|
|
#include <windows.h>
|
|
#include <windows.h>
|
|
|
|
|
|
-#define STB_GL_IMPLEMENTATION
|
|
|
|
-#define STB_GLEXT_DEFINE "glext_list.h"
|
|
|
|
-#include "stb_gl.h"
|
|
|
|
-
|
|
|
|
|
|
+// stb.h
|
|
#define STB_DEFINE
|
|
#define STB_DEFINE
|
|
#include "stb.h"
|
|
#include "stb.h"
|
|
|
|
|
|
-#include "caveview.h"
|
|
|
|
|
|
+// stb_gl.h
|
|
|
|
+#define STB_GL_IMPLEMENTATION
|
|
|
|
+#define STB_GLEXT_DEFINE "glext_list.h"
|
|
|
|
+#include "stb_gl.h"
|
|
|
|
|
|
|
|
+// SDL
|
|
#include "sdl.h"
|
|
#include "sdl.h"
|
|
#include "SDL_opengl.h"
|
|
#include "SDL_opengl.h"
|
|
|
|
|
|
-#define STB_IMAGE_IMPLEMENTATION
|
|
|
|
-#include "stb_image.h"
|
|
|
|
-
|
|
|
|
|
|
+// stb_glprog.h
|
|
#define STB_GLPROG_IMPLEMENTATION
|
|
#define STB_GLPROG_IMPLEMENTATION
|
|
#define STB_GLPROG_ARB_DEFINE_EXTENSIONS
|
|
#define STB_GLPROG_ARB_DEFINE_EXTENSIONS
|
|
#include "stb_glprog.h"
|
|
#include "stb_glprog.h"
|
|
|
|
|
|
|
|
+// stb_image.h
|
|
|
|
+#define STB_IMAGE_IMPLEMENTATION
|
|
|
|
+#include "stb_image.h"
|
|
|
|
+
|
|
|
|
+// stb_easy_font.h
|
|
#include "stb_easy_font.h" // doesn't require an IMPLEMENTATION
|
|
#include "stb_easy_font.h" // doesn't require an IMPLEMENTATION
|
|
|
|
|
|
#include "caveview.h"
|
|
#include "caveview.h"
|
|
|
|
|
|
char *game_name = "caveview";
|
|
char *game_name = "caveview";
|
|
|
|
|
|
-// assume only a single texture with all sprites
|
|
|
|
-float texture_s_scale;
|
|
|
|
-float texture_t_scale;
|
|
|
|
-GLuint interface_tex, logo_tex;
|
|
|
|
|
|
|
|
-extern int screen_x, screen_y; // main.c
|
|
|
|
|
|
+#define REVERSE_DEPTH
|
|
|
|
|
|
-void print_string(float x, float y, char *text, float r, float g, float b)
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+static void print_string(float x, float y, char *text, float r, float g, float b)
|
|
{
|
|
{
|
|
static char buffer[99999];
|
|
static char buffer[99999];
|
|
int num_quads;
|
|
int num_quads;
|
|
@@ -55,11 +51,11 @@ void print_string(float x, float y, char *text, float r, float g, float b)
|
|
glDisableClientState(GL_VERTEX_ARRAY);
|
|
glDisableClientState(GL_VERTEX_ARRAY);
|
|
}
|
|
}
|
|
|
|
|
|
-float text_color[3];
|
|
|
|
-float pos_x = 10;
|
|
|
|
-float pos_y = 10;
|
|
|
|
|
|
+static float text_color[3];
|
|
|
|
+static float pos_x = 10;
|
|
|
|
+static float pos_y = 10;
|
|
|
|
|
|
-void print(char *text, ...)
|
|
|
|
|
|
+static void print(char *text, ...)
|
|
{
|
|
{
|
|
char buffer[999];
|
|
char buffer[999];
|
|
va_list va;
|
|
va_list va;
|
|
@@ -70,24 +66,10 @@ void print(char *text, ...)
|
|
pos_y += 10;
|
|
pos_y += 10;
|
|
}
|
|
}
|
|
|
|
|
|
-// mouse offsetting 'pixel to virtual'
|
|
|
|
-float xs_p2v, ys_p2v;// xoff_p2v, yoff_p2v;
|
|
|
|
-
|
|
|
|
-// viewport offseting 'virtual to pixel'
|
|
|
|
-float xs_v2p, ys_v2p, xoff_v2p, yoff_v2p;
|
|
|
|
-
|
|
|
|
float camang[3], camloc[3] = { 0,0,75 };
|
|
float camang[3], camloc[3] = { 0,0,75 };
|
|
float player_zoom = 1.0;
|
|
float player_zoom = 1.0;
|
|
-int third_person;
|
|
|
|
float rotate_view = 0.0;
|
|
float rotate_view = 0.0;
|
|
|
|
|
|
-#define REVERSE_DEPTH
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-void init_game(void)
|
|
|
|
-{
|
|
|
|
-// init_graphics();
|
|
|
|
-}
|
|
|
|
|
|
|
|
void camera_to_worldspace(float world[3], float cam_x, float cam_y, float cam_z)
|
|
void camera_to_worldspace(float world[3], float cam_x, float cam_y, float cam_z)
|
|
{
|
|
{
|
|
@@ -293,23 +275,8 @@ void draw_main(void)
|
|
glLoadIdentity();
|
|
glLoadIdentity();
|
|
stbgl_initCamera_zup_facing_y();
|
|
stbgl_initCamera_zup_facing_y();
|
|
|
|
|
|
- //glTranslatef(0,150,-5);
|
|
|
|
- // position the camera and render it
|
|
|
|
-
|
|
|
|
- if (third_person) {
|
|
|
|
- glTranslatef(0,2.5,0);
|
|
|
|
- glRotatef(-camang[0],1,0,0);
|
|
|
|
-
|
|
|
|
- glTranslatef(0,2,0);
|
|
|
|
- glRotatef(-camang[2]-rotate_view,0,0,1);
|
|
|
|
-
|
|
|
|
- //glTranslatef(0,0,1);
|
|
|
|
- //glTranslatef(0,0,-1);
|
|
|
|
- } else {
|
|
|
|
- glRotatef(-camang[0],1,0,0);
|
|
|
|
- glRotatef(-camang[2],0,0,1);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ glRotatef(-camang[0],1,0,0);
|
|
|
|
+ glRotatef(-camang[2],0,0,1);
|
|
glTranslatef(-camloc[0], -camloc[1], -camloc[2]);
|
|
glTranslatef(-camloc[0], -camloc[1], -camloc[2]);
|
|
|
|
|
|
start_time = SDL_GetPerformanceCounter();
|
|
start_time = SDL_GetPerformanceCounter();
|
|
@@ -355,7 +322,6 @@ void ods(char *fmt, ...)
|
|
|
|
|
|
static SDL_Window *window;
|
|
static SDL_Window *window;
|
|
|
|
|
|
-extern void init_game(void);
|
|
|
|
extern void draw_main(void);
|
|
extern void draw_main(void);
|
|
extern void process_tick(float dt);
|
|
extern void process_tick(float dt);
|
|
extern void editor_init(void);
|
|
extern void editor_init(void);
|
|
@@ -377,17 +343,11 @@ float carried_dt = 0;
|
|
|
|
|
|
|
|
|
|
int raw_level_time;
|
|
int raw_level_time;
|
|
-extern void init_game(void);
|
|
|
|
-extern void draw_main(void);
|
|
|
|
|
|
|
|
float global_timer;
|
|
float global_timer;
|
|
|
|
|
|
int loopmode(float dt, int real, int in_client)
|
|
int loopmode(float dt, int real, int in_client)
|
|
{
|
|
{
|
|
- float actual_dt = dt;
|
|
|
|
-
|
|
|
|
- float jump_timer = dt;
|
|
|
|
-
|
|
|
|
if (!initialized) return 0;
|
|
if (!initialized) return 0;
|
|
|
|
|
|
if (!real)
|
|
if (!real)
|
|
@@ -413,10 +373,6 @@ int loopmode(float dt, int real, int in_client)
|
|
|
|
|
|
static int quit;
|
|
static int quit;
|
|
|
|
|
|
-//int winproc(void *data, stbwingraph_event *e)
|
|
|
|
-
|
|
|
|
-extern int editor_scale;
|
|
|
|
-extern void editor_key(enum stbte_action act);
|
|
|
|
extern int controls;
|
|
extern int controls;
|
|
|
|
|
|
void active_control_set(int key)
|
|
void active_control_set(int key)
|
|
@@ -444,8 +400,6 @@ void process_event(SDL_Event *e)
|
|
break;
|
|
break;
|
|
case SDL_MOUSEBUTTONDOWN:
|
|
case SDL_MOUSEBUTTONDOWN:
|
|
case SDL_MOUSEBUTTONUP:
|
|
case SDL_MOUSEBUTTONUP:
|
|
- case SDL_MOUSEWHEEL:
|
|
|
|
- //stbte_mouse_sdl(edit_map, e, 1.0f/editor_scale,1.0f/editor_scale,0,0);
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
case SDL_QUIT:
|
|
case SDL_QUIT:
|
|
@@ -462,36 +416,13 @@ void process_event(SDL_Event *e)
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
- case SDL_TEXTINPUT:
|
|
|
|
- switch(e->text.text[0]) {
|
|
|
|
- #if 0
|
|
|
|
- case 27: {
|
|
|
|
- #if 0
|
|
|
|
- int result;
|
|
|
|
- SDL_ShowCursor(SDL_ENABLE);
|
|
|
|
- if (MessageBox(e->handle, "Exit CLTT?", "CLTT", MB_OKCANCEL) == IDOK);
|
|
|
|
- #endif
|
|
|
|
- {
|
|
|
|
- quit = 1;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- //SDL_ShowCursor(SDL_DISABLE);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- #endif
|
|
|
|
- }
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
case SDL_KEYDOWN: {
|
|
case SDL_KEYDOWN: {
|
|
int k = e->key.keysym.sym;
|
|
int k = e->key.keysym.sym;
|
|
int s = e->key.keysym.scancode;
|
|
int s = e->key.keysym.scancode;
|
|
SDL_Keymod mod;
|
|
SDL_Keymod mod;
|
|
mod = SDL_GetModState();
|
|
mod = SDL_GetModState();
|
|
- if (k == SDLK_ESCAPE) {
|
|
|
|
-#ifndef DO_EDITOR
|
|
|
|
|
|
+ if (k == SDLK_ESCAPE)
|
|
quit = 1;
|
|
quit = 1;
|
|
-#endif
|
|
|
|
- }
|
|
|
|
|
|
|
|
if (s == SDL_SCANCODE_D) active_control_set(0);
|
|
if (s == SDL_SCANCODE_D) active_control_set(0);
|
|
if (s == SDL_SCANCODE_A) active_control_set(1);
|
|
if (s == SDL_SCANCODE_A) active_control_set(1);
|
|
@@ -573,10 +504,6 @@ static float getTimestep(float minimum_time)
|
|
|
|
|
|
void APIENTRY gl_debug(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *param)
|
|
void APIENTRY gl_debug(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *param)
|
|
{
|
|
{
|
|
- #if 0
|
|
|
|
- if (severity == GL_DEBUG_SEVERITY_LOW_ARB)
|
|
|
|
- return;
|
|
|
|
- #endif
|
|
|
|
ods("%s\n", message);
|
|
ods("%s\n", message);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -643,7 +570,6 @@ int SDL_main(int argc, char **argv)
|
|
mesh_init();
|
|
mesh_init();
|
|
world_init();
|
|
world_init();
|
|
|
|
|
|
- init_game();
|
|
|
|
initialized = 1;
|
|
initialized = 1;
|
|
|
|
|
|
while (!quit) {
|
|
while (!quit) {
|
|
@@ -652,7 +578,6 @@ int SDL_main(int argc, char **argv)
|
|
process_event(&e);
|
|
process_event(&e);
|
|
|
|
|
|
loopmode(getTimestep(0.0166f/8), 1, 1);
|
|
loopmode(getTimestep(0.0166f/8), 1, 1);
|
|
- quit=quit;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|