diff --git a/src/render/render_minimap.c b/src/render/render_minimap.c index 29ea441..7816f03 100644 --- a/src/render/render_minimap.c +++ b/src/render/render_minimap.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/05/12 11:31:34 by whaffman #+# #+# */ -/* Updated: 2025/05/16 13:35:05 by whaffman ######## odam.nl */ +/* Updated: 2025/05/18 12:57:16 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ diff --git a/src/render/render_sprite.c b/src/render/render_sprite.c index bc81da2..95b5d9b 100644 --- a/src/render/render_sprite.c +++ b/src/render/render_sprite.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/05/08 12:23:17 by qmennen #+# #+# */ -/* Updated: 2025/05/15 17:51:57 by whaffman ######## odam.nl */ +/* Updated: 2025/05/18 12:49:56 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -23,8 +23,8 @@ static void get_start_end(t_game *game, start->y = 0.5 * (game->screen->height - sprite->texture->height * sprite_scale); end->x = start->x; - end->x += (sprite->texture->width / sprite->n_frames * sprite_scale); - end->y = start->y + (sprite->texture->height * sprite_scale); + end->x += sprite->texture->width / sprite->n_frames * sprite_scale; + end->y = start->y + sprite->texture->height * sprite_scale; } static int sprite_visible(t_game *game, @@ -50,7 +50,7 @@ static void draw_sprite_column( inv_range.x = 1.0 / (column.end.x - column.start.x); sprite->alpha = calculate_alpha(column.start.x, column.start.y, sprite->dist); - tex.x = (column.x - column.start.x); + tex.x = column.x - column.start.x; tex.x *= sprite->texture->width / sprite->n_frames; tex.x *= inv_range.x; y = column.start.y; diff --git a/src/render/render_sprite_utils.c b/src/render/render_sprite_utils.c index 9364485..c441907 100644 --- a/src/render/render_sprite_utils.c +++ b/src/render/render_sprite_utils.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/05/14 21:21:57 by whaffman #+# #+# */ -/* Updated: 2025/05/15 15:10:39 by whaffman ######## odam.nl */ +/* Updated: 2025/05/18 12:51:23 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -58,9 +58,9 @@ void cam_fraction(t_game *game, t_sprite *sprite) cam = game->player->camera; ps = sub(sprite->pos, game->player->pos); - frac_cam = (ps.y * game->player->dir.x - ps.x * game->player->dir.y); - denominator = (ps.x * cam.y - ps.y * cam.x); - frac_sprite = (cam.y * game->player->dir.x - cam.x * game->player->dir.y); + frac_cam = ps.y * game->player->dir.x - ps.x * game->player->dir.y; + denominator = ps.x * cam.y - ps.y * cam.x; + frac_sprite = cam.y * game->player->dir.x - cam.x * game->player->dir.y; sprite->cam_frac = NAN; if (denominator == 0 || (frac_sprite / denominator) < 0) return ; @@ -75,7 +75,7 @@ unsigned int calculate_alpha(int x, int y, double dist) int alpha; dist = (dist > 1) * dist + (dist <= 1) * 1; - alpha = (255.0 / dist); + alpha = 255.0 / dist; return (alpha); } @@ -96,8 +96,8 @@ unsigned int texture = sprite->texture; index = (tex.x + n * width + tex.y * width * n_frames); index *= texture->bytes_per_pixel; - return (texture->pixels[index] << 24 - | texture->pixels[index + 1] << 16 - | texture->pixels[index + 2] << 8 + return ((unsigned int)texture->pixels[index] << 24 + | (unsigned int)texture->pixels[index + 1] << 16 + | (unsigned int)texture->pixels[index + 2] << 8 | (texture->pixels[index + 3] != 0) * sprite->alpha); } diff --git a/src/render/render_walls.c b/src/render/render_walls.c index a08aef5..70cdd59 100644 --- a/src/render/render_walls.c +++ b/src/render/render_walls.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/05/14 13:05:28 by whaffman #+# #+# */ -/* Updated: 2025/05/14 19:26:50 by whaffman ######## odam.nl */ +/* Updated: 2025/05/18 12:05:07 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -58,13 +58,17 @@ unsigned int get_texture_color(mlx_texture_t *texture, int index; double dist; + if (tex.x < 0) + tex.x = 0; + if (tex.y < 0) + tex.y = 0; index = (tex.x + tex.y * texture->height) * texture->bytes_per_pixel; dist = (render.perp_dist == 0) * 1e30 + (render.perp_dist > 1) * render.perp_dist + (render.perp_dist <= 1) * 1; - return (texture->pixels[index] << 24 - | texture->pixels[index + 1] << 16 - | texture->pixels[index + 2] << 8 + return ((unsigned int)texture->pixels[index] << 24 + | (unsigned int)texture->pixels[index + 1] << 16 + | (unsigned int)texture->pixels[index + 2] << 8 | (int)(1.0 / dist * 255)); }