diff --git a/bin/back b/bin/back index c4431da..d3fa241 100755 Binary files a/bin/back and b/bin/back differ diff --git a/levels/level_01/room_1 b/levels/level_01/room_1 index 667c273..2dfdc80 100644 --- a/levels/level_01/room_1 +++ b/levels/level_01/room_1 @@ -13,10 +13,10 @@ Entities : [ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 12.0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 12.5] -[-14.0, 7.5, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] -[ 12.0, 7.5, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 12.0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 12.5] +[-13.0, 7.5, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] +[ 11.0, 7.5, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] Weight : 50 diff --git a/levels/level_01/room_2 b/levels/level_01/room_2 index 2f9f00c..37da067 100644 --- a/levels/level_01/room_2 +++ b/levels/level_01/room_2 @@ -13,10 +13,10 @@ Entities : [ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 12.0, 0.0, 0.0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 12.5, 0.0, 0.0] -[-1.0, 7.5, -14.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] -[-1.0, 7.5, 12.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 12.0, 0.0, 0.0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 12.5, 0.0, 0.0] +[-2.0, 7.5, -13.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] +[-2.0, 7.5, 11.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0] Weight : 50 diff --git a/levels/level_01/room_3 b/levels/level_01/room_3 index 7a27f77..5540a88 100644 --- a/levels/level_01/room_3 +++ b/levels/level_01/room_3 @@ -13,10 +13,10 @@ Entities : [ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 180] -[-14.0, 7.5, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 90] -[ 12.0, 7.5, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 270] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 180] +[-13.0, 7.5, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 90] +[ 11.0, 7.5, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 270] Weight : 50 diff --git a/levels/level_01/room_4 b/levels/level_01/room_4 index 49f394a..579a072 100644 --- a/levels/level_01/room_4 +++ b/levels/level_01/room_4 @@ -13,10 +13,10 @@ Entities : [ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] [ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0] -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 180] -[-1.0, 7.5, -14.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 90] -[-1.0, 7.5, 12.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 270] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 180] +[-2.0, 7.5, -13.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 90] +[-2.0, 7.5, 11.0, 4.0, 1.0, 4.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 270] Weight : 50 diff --git a/levels/level_01/room_5 b/levels/level_01/room_5 index d27222c..902bf44 100644 --- a/levels/level_01/room_5 +++ b/levels/level_01/room_5 @@ -9,10 +9,10 @@ Blocks : [-1.0, 15.0, 15.0, 2.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192] Entities : -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 6.0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 8.0] -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 6.0, 0.0, 0.0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 8.0, 0.0, 0.0] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 6.0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 8.0] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 6.0, 0.0, 0.0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 8.0, 0.0, 0.0] Weight : 75 diff --git a/levels/level_01/room_6 b/levels/level_01/room_6 index 8dcee1c..5d09b11 100644 --- a/levels/level_01/room_6 +++ b/levels/level_01/room_6 @@ -9,10 +9,10 @@ Blocks : [-1.0, 15.0, 15.0, 2.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192] Entities : -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 180] -[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 0] -[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 180] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 180] +[-2.0, 1.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 0] +[-2.0, 15.0, -2.0, 4.0, 1.0, 4.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 180] [-3.0, 7.5, -3.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 1, 0, 4, 0.0, 7.5, 0.0, 1, 2, 0] [-3.0, 7.5, 2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 1, 0, 4, 0.0, 7.5, 0.0, 1, 2, 90] [ 2.0, 7.5, -3.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 1, 0, 4, 0.0, 7.5, 0.0, 1, 2, 180] diff --git a/obj/display.o b/obj/display.o index 2b3cbf2..bc37a39 100644 Binary files a/obj/display.o and b/obj/display.o differ diff --git a/obj/entities.o b/obj/entities.o index 252916b..ea67809 100644 Binary files a/obj/entities.o and b/obj/entities.o differ diff --git a/obj/move.o b/obj/move.o index d6b06a0..f43c29f 100644 Binary files a/obj/move.o and b/obj/move.o differ diff --git a/obj/proj.o b/obj/proj.o index 1c455b8..29e94df 100644 Binary files a/obj/proj.o and b/obj/proj.o differ diff --git a/src/display.c b/src/display.c index 84099a1..c0f0e13 100644 --- a/src/display.c +++ b/src/display.c @@ -161,6 +161,10 @@ bool is_visible(cube_0* cb, double offx, double offy, double offz) { return false; } +void gl_resetTexture() { + glBindTexture(GL_TEXTURE_2D, textures[0]); +} + void gl_renderAll(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO, room* rtd, double offx, double offy, double offz) { if(rtd != NULL) { glActiveTexture(GL_TEXTURE0); diff --git a/src/display.h b/src/display.h index d35addc..e18aa65 100644 --- a/src/display.h +++ b/src/display.h @@ -10,4 +10,6 @@ void init_vertices(); void gl_drawData(unsigned int shaderProg); +void gl_resetTexture(); + #endif \ No newline at end of file diff --git a/src/entities.c b/src/entities.c index 24983c9..23d7bf8 100644 --- a/src/entities.c +++ b/src/entities.c @@ -70,9 +70,9 @@ void speen2(double x, double y, double z, double w, double h, double d, double h double dy = (y+h/2 - camy); double dz = (z+d/2 - camz); double total = sqrt(dx*dx + dy*dy + dz*dz); - dx = 17.0*dx/total; - dy = 17.0*dy/total; - dz = 17.0*dz/total; + dx = 110.0*dx/total; + dy = 110.0*dy/total; + dz = 110.0*dz/total; appendProj(x+w/2, y+h/2, z+d/2, 0.1, 0.1, 0.1, -dx, -dy, -dz, 0.0, 0.0, 0.0, 255, 0, 0, 10, 3.0); } } diff --git a/src/move.c b/src/move.c index 380cc87..6ca22e8 100644 --- a/src/move.c +++ b/src/move.c @@ -256,19 +256,24 @@ bool is_colliding(float dtime) { double dist = distance_pt_cube_0_3d_infinite(camx, camy, camz, current_room->ents[k]->pos); //printf("%lf vs %lf\n", dist, min_dist); if(dist <= min_dist) { + bool exists = true; if(current_room->ents[k]->onHit != NULL) { (*current_room->ents[k]->onHit)(dtime, current_room->ents[k]->hitpoints, ¤t_room->ents[k]->damage, current_room->ents[k], &(*(current_room->ents[k]->pos))); if(*(current_room->ents[k]->hitpoints) <= 0) { if(current_room->ents[k]->onDeath != NULL) { (*current_room->ents[k]->onDeath)(dtime); } + + remove_entity(current_room->ents, ¤t_room->ent_memlen, ¤t_room->ent_len, k); + is_clipping = false; + exists = false; } } - if(updateForces && current_room->ents[k]->entity_type != 0) { + if(exists && updateForces && current_room->ents[k]->entity_type != 0) { updateF(current_room->ents[k]->pos, (double)dtime); } - if(current_room->ents[k]->entity_type == 9) { + if(exists && current_room->ents[k]->entity_type == 9) { is_clipping = false; } return true; diff --git a/src/proj.c b/src/proj.c index ce0627e..a29bde2 100644 --- a/src/proj.c +++ b/src/proj.c @@ -79,6 +79,7 @@ void removeProj(int k) { } void gl_renderProj(unsigned int shaderProgram, unsigned int fragmentShader, unsigned int VAO, unsigned int VBO) { + gl_resetTexture(); for(int k = 0; k < bullets_id; k++) { gl_renderCube(shaderProgram, fragmentShader, VAO, VBO, bullets[k].pos, 0.0, 0.0, 0.0); } @@ -97,7 +98,7 @@ void updateProj(float dtime) { if(*(bullets[k].ttl) <= 0.0 || is_colliding_with_map(bullets[k].pos) || is_colliding_with_tp(bullets[k].pos)) { removeProj(k); k -= 1; - } else if(distance_pt_cube_0_3d(camx, camy, camz, bullets[k].pos) <= 0.1) { + } else if(distance_pt_cube_0_3d(camx, camy, camz, bullets[k].pos) <= min_dist) { player_hp -= bullets[k].damage; removeProj(k); k -= 1;