diff options
Diffstat (limited to '')
-rw-r--r-- | src/ft_set_minimap_scale.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/ft_set_minimap_scale.c b/src/ft_set_minimap_scale.c index 52c63e6..ed5ca1a 100644 --- a/src/ft_set_minimap_scale.c +++ b/src/ft_set_minimap_scale.c @@ -12,15 +12,26 @@ #include <cub3d.h> +#include <libft.h> void ft_set_minimap_scale(t_cub *clist) { t_map *ml; ml = &clist->mlist; - ((ml->scale = (clist->wlist.x_size / (uint16_t)ml->map_w) - 1) < 1) - ? (ml->scale = 1) : 0; - (clist->wlist.y_size < (ml->map_h * ml->scale)) ? (ml->scale = - (clist->wlist.y_size / (uint16_t)ml->map_h) - 1) : 0; - (ml->scale >= 10) ? (ml->scale /= 4) : 0; + if (ml->map_w > ml->map_h) + { + ml->scale = (clist->wlist.x_size / (uint16_t)ml->map_w); + ml->scale = ((ml->scale - 1) < 1) ? (1) : (ml->scale); + ml->scale = (clist->wlist.y_size < (ml->map_h * ml->scale)) + ? ((clist->wlist.y_size / (uint16_t)ml->map_h) - 1) : (ml->scale); + } + else + { + ml->scale = (clist->wlist.y_size / (uint16_t)ml->map_h); + ml->scale = ((ml->scale - 1) < 1) ? (1) : (ml->scale); + ml->scale = (clist->wlist.y_size < (ml->map_h * ml->scale)) + ? ((clist->wlist.y_size / (uint16_t)ml->map_h) - 1) : (ml->scale); + } + ml->scale = (ml->scale >= 10) ? (ml->scale / 4) : (ml->scale); } |