diff --git a/bin/back b/bin/back index ebea4e6..26e954e 100755 Binary files a/bin/back and b/bin/back differ diff --git a/obj/display.o b/obj/display.o index 6039b78..f9b0fe8 100644 Binary files a/obj/display.o and b/obj/display.o differ diff --git a/obj/main.o b/obj/main.o index 205f9cf..98909b3 100644 Binary files a/obj/main.o and b/obj/main.o differ diff --git a/obj/proj.o b/obj/proj.o index b3d3719..1de04db 100644 Binary files a/obj/proj.o and b/obj/proj.o differ diff --git a/src/display.c b/src/display.c index 6ef5efa..04be87d 100644 --- a/src/display.c +++ b/src/display.c @@ -117,13 +117,13 @@ void init_vertices() { vertices[105] = 0.5f; vertices[106] = 0.5f; vertices[107] = 0.5f; } -void gl_renderSurface(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, cube_0* c, int sf) { +void gl_renderCube(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, cube_0* c, double offx, double offy, double offz) { glm_mat4_identity(model); glm_mat4_identity(scale); scale[0][0] = (float)(c->w); scale[1][1] = (float)(c->h); scale[2][2] = (float)(c->d); - glm_translate(model, (vec3){(float)(c->x+c->w/2.0), (float)(c->y+c->h/2.0), (float)(c->z+c->d/2.0)}); + glm_translate(model, (vec3){(float)(c->x+c->w/2.0+offx), (float)(c->y+c->h/2.0+offy), (float)(c->z+c->d/2.0+offz)}); glm_rotate(model, (float)(-c->hz_angle), (vec3){0.0f, 1.0f, 0.0f}); glm_rotate(model, (float)(c->vt_angle), (vec3){1.0f, 0.0f, 0.0f}); @@ -137,21 +137,15 @@ void gl_renderSurface(unsigned int shaderProgram, unsigned int fragmentShader, u glDrawArrays(GL_TRIANGLES, 0, 36); } -void gl_renderCube(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, cube_0* c) { - for(int k = 0; k < 6; k++) { - gl_renderSurface(shaderProgram, fragmentShader, VAO, VBO, c, k); +void gl_renderAll(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, room* rtd, double offx, double offy, double offz) { + for(int k = 0; k < rtd->map_size; k++) { + gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, rtd->map[k], offx, offy, offz); } -} - -void gl_renderAll(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO) { - for(int k = 0; k < current_room->map_size; k++) { - gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, current_room->map[k]); + for(int k = 0; k < rtd->tps_size; k++) { + gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, rtd->tps[k]->hitbox, offx, offy, offz); } - for(int k = 0; k < current_room->tps_size; k++) { - gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, current_room->tps[k]->hitbox); - } - for(int k = 0; k < current_room->ent_len; k++) { - gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, current_room->ents[k].pos); + for(int k = 0; k < rtd->ent_len; k++) { + gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, rtd->ents[k].pos, offx, offy, offz); } } diff --git a/src/display.h b/src/display.h index ffde766..fb12a7e 100644 --- a/src/display.h +++ b/src/display.h @@ -1,8 +1,8 @@ #ifndef DISPLAY_H #define DISPLAY_H -void gl_renderCube(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, cube_0* c); -void gl_renderAll(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO); +void gl_renderCube(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, cube_0* c, double offx, double offy, double offz); +void gl_renderAll(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, room* rtd, double offx, double offy, double offz); void gl_initRender(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO); void init_vertices(); diff --git a/src/main.c b/src/main.c index 8e63d35..64d4e67 100644 --- a/src/main.c +++ b/src/main.c @@ -227,7 +227,7 @@ int main_alt() { glBindVertexArray(VAO); glBindBuffer(GL_ARRAY_BUFFER, VBO); gl_initRender(shaderProgram, shaderProgram, VAO, VBO); - gl_renderAll(shaderProgram, shaderProgram, VAO, VBO); + gl_renderAll(shaderProgram, shaderProgram, VAO, VBO, current_room, 0.0, 0.0, 0.0); gl_renderProj(shaderProgram, shaderProgram, VAO, VBO); //printf("01\n"); diff --git a/src/proj.c b/src/proj.c index bce3c8b..c0f44d9 100644 --- a/src/proj.c +++ b/src/proj.c @@ -96,7 +96,7 @@ void removeProj(int k) { void gl_renderProj(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO) { for(int k = 0; k < bullets_id; k++) { - gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, bullets[k].pos); + gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, bullets[k].pos, 0.0, 0.0, 0.0); } }