-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathminimap.c
58 lines (51 loc) · 2.09 KB
/
minimap.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* minimap.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: cyildiri <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/30 18:07:17 by cyildiri #+# #+# */
/* Updated: 2017/03/30 18:07:21 by cyildiri ### ########.fr */
/* */
/* ************************************************************************** */
#include "wolf3d.h"
t_minimap *new_minimap(t_rc_renderer *rend, t_frame *rc_map, t_vec2i pos,
double scaling)
{
t_minimap *minimap;
if (!(minimap = (t_minimap *)ft_memalloc(sizeof(t_minimap))))
return (NULL);
minimap->map = frame_resize(rend, rc_map, scaling);
minimap->height = minimap->map->height;
minimap->width = minimap->map->width;
minimap->overlay = new_tframe(rend, minimap->height, minimap->width);
minimap->scaling = scaling;
minimap->alpha = 1.0f;
frame_apply_alpha(minimap->map, 1.0f);
minimap->position = pos;
return (minimap);
}
void minimap_add_player(t_minimap *minimap, t_player *player)
{
minimap->player = player;
}
void minimap_set_pos(t_minimap *minimap, t_vec2i pos)
{
minimap->position = pos;
}
void minimap_set_alpha(t_minimap *minimap, double transparency)
{
frame_apply_alpha(minimap->map, transparency);
minimap->alpha = transparency;
}
void minimap_change_map(t_rc_renderer *rend, t_minimap *mini,
t_frame *rc_map, double scaling)
{
frame_delete(rend, &mini->map);
frame_delete(rend, &mini->overlay);
mini->map = frame_resize(rend, rc_map, scaling);
mini->height = mini->map->height;
mini->width = mini->map->width;
mini->overlay = new_tframe(rend, mini->height, mini->width);
}