summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/engine/M_camera.c8
-rw-r--r--src/engine/M_chunk.c2
-rw-r--r--src/engine/M_game.c14
-rw-r--r--src/engine/M_game.h1
-rw-r--r--src/engine/M_main.c9
-rw-r--r--src/engine/M_render.c2
-rw-r--r--src/engine/M_render.h2
7 files changed, 28 insertions, 10 deletions
diff --git a/src/engine/M_camera.c b/src/engine/M_camera.c
index f28d22f..a2852ba 100644
--- a/src/engine/M_camera.c
+++ b/src/engine/M_camera.c
@@ -42,9 +42,13 @@ inline void M_cameraViewMatrix(M_Camera *camera)
break;
case M_CAMERA_FPS:
glm_mat4_identity(camera->view_matrix);
+ float pitch, yaw, roll;
+ pitch = glm_rad(camera->pitch);
+ yaw = glm_rad(camera->yaw);
+ roll = glm_rad(camera->roll);
glm_translate(camera->view_matrix, camera->pos);
- glm_rotate_x(camera->view_matrix, camera->pitch, camera->view_matrix);
- glm_rotate_y(camera->view_matrix, camera->yaw, camera->view_matrix);
+ glm_rotate_x(camera->view_matrix, pitch, camera->view_matrix);
+ glm_rotate_y(camera->view_matrix, yaw, camera->view_matrix);
break;
}
}
diff --git a/src/engine/M_chunk.c b/src/engine/M_chunk.c
index 2227ee9..630e206 100644
--- a/src/engine/M_chunk.c
+++ b/src/engine/M_chunk.c
@@ -5,7 +5,7 @@ void M_generateChunk(M_Chunk *chunk)
for (int x=0;x<M_CHUNK_SIZE;x++)
for (int y=0;y<M_CHUNK_SIZE;y++)
for (int z=0;z<M_CHUNK_SIZE;z++) {
- if (x==M_CHUNK_SIZE) {
+ if (y==M_CHUNK_SIZE/2) {
M_Block block;
M_createBlock(&block, 1);
chunk->blocks[x][y][z] = block;
diff --git a/src/engine/M_game.c b/src/engine/M_game.c
index 6295f51..0b2b14a 100644
--- a/src/engine/M_game.c
+++ b/src/engine/M_game.c
@@ -4,6 +4,7 @@ int M_initGame(M_Game *game, const char *window_title)
{
game->window_width = 1280;
game->window_height = 720;
+ game->mouse_sens = 10.0f;
SDL_Init(
SDL_INIT_VIDEO
@@ -17,6 +18,8 @@ int M_initGame(M_Game *game, const char *window_title)
);
SDL_SetWindowRelativeMouseMode(game->window, 1);
+ game->render_info.render_distance = 40.0f;
+
M_setupProjection(90.0f, ((float)game->window_width)/((float)game->window_height), &game->render_info);
game->block_atlas = M_createBlockAtlas();
@@ -42,6 +45,8 @@ int M_initGame(M_Game *game, const char *window_title)
glClearColor(0.0f, 0.25f, 0.5f, 1.0f);
glEnable(GL_DEPTH_TEST);
+// glEnable(GL_CULL_FACE);
+// glCullFace(GL_FRONT);
return 0;
}
@@ -62,11 +67,14 @@ int M_handleEvents(M_Game *game)
game->running = 0;
break;
case SDL_EVENT_KEY_DOWN:
- SDL_SetWindowRelativeMouseMode(game->window, 0);
+ game->running = 0;
break;
case SDL_EVENT_MOUSE_MOTION:
- game->player.camera.yaw += (float)event.motion.xrel/100;
- game->player.camera.pitch += (float)event.motion.yrel/100;
+ M_Camera *camera = &game->player.camera;
+ camera->yaw += (float)event.motion.xrel * (game->mouse_sens/10);
+ camera->pitch += (float)event.motion.yrel * (game->mouse_sens/10);
+ if (camera->pitch > 90.0f) camera->pitch = 90.0f;
+ if (camera->pitch < -90.0f) camera->pitch = -90.0f;
break;
}
}
diff --git a/src/engine/M_game.h b/src/engine/M_game.h
index 4c884d9..41888c8 100644
--- a/src/engine/M_game.h
+++ b/src/engine/M_game.h
@@ -19,6 +19,7 @@ typedef struct {
SDL_GLContext gpu;
int window_width, window_height;
+ float mouse_sens;
int running;
M_RenderInfo render_info;
diff --git a/src/engine/M_main.c b/src/engine/M_main.c
index 98cc605..2a74c41 100644
--- a/src/engine/M_main.c
+++ b/src/engine/M_main.c
@@ -40,12 +40,15 @@ int main()
M_moveObject(&my_cube, (vec3){0.0f, -0.5f, -1.0f});
while (game.running) {
- printf("hello\n");
+ printf("Pitch: %f, Yaw: %f\n",
+ game.player.camera.pitch,
+ game.player.camera.yaw
+ );
M_handleEvents(&game);
glClear(GL_COLOR_BUFFER_BIT);
glClear(GL_DEPTH_BUFFER_BIT);
-// M_renderChunk(&game, &my_chunk);
- M_drawObject(&game.render_info, &game.player.camera, &my_cube);
+ M_renderChunk(&game, &my_chunk);
+// M_drawObject(&game.render_info, &game.player.camera, &my_cube);
SDL_GL_SwapWindow(game.window);
}
diff --git a/src/engine/M_render.c b/src/engine/M_render.c
index 9317167..1c4afa5 100644
--- a/src/engine/M_render.c
+++ b/src/engine/M_render.c
@@ -2,7 +2,7 @@
void M_setupProjection(float fov, float aspect_ratio, M_RenderInfo *render_info)
{
- glm_perspective(fov, aspect_ratio, 0.01f, 10.0f, render_info->projection_matrix);
+ glm_perspective(fov, aspect_ratio, 0.01f, render_info->render_distance, render_info->projection_matrix);
}
void M_drawObject(M_RenderInfo *render_info, M_Camera *camera, M_Object *obj)
diff --git a/src/engine/M_render.h b/src/engine/M_render.h
index c6800ae..1212e39 100644
--- a/src/engine/M_render.h
+++ b/src/engine/M_render.h
@@ -9,6 +9,8 @@
typedef struct {
mat4 view_matrix, projection_matrix;
+ float render_distance;
+
M_ViewModel *global_models;
} M_RenderInfo;