6
6
/* By: obastug <[email protected] > +#+ +:+ +#+ */
7
7
/* +#+#+#+#+#+ +#+ */
8
8
/* Created: 2025/01/02 11:39:32 by ebabaogl #+# #+# */
9
- /* Updated: 2025/01/04 16:36:54 by obastug ### ########.fr */
9
+ /* Updated: 2025/01/07 16:46:36 by obastug ### ########.fr */
10
10
/* */
11
11
/* ************************************************************************** */
12
12
23
23
24
24
void put_pixel (void * mlx_ptr , void * win_ptr , int x , int y , unsigned long color )
25
25
{
26
- printf ("pixel sent to mlx: %d, %d\n" , (WIN_WIDTH / 2 ) + x , (WIN_HEIGHT / 2 ) - y );
27
- mlx_pixel_put (mlx_ptr , win_ptr , (WIN_WIDTH / 2 ) + x , (WIN_HEIGHT / 2 ) + y , color );
26
+ printf ("pixel sent to mlx: %d, %d\n" , (WIN_WIDTH / 2 ) + x , (WIN_HEIGHT / 2 ) + y );
27
+ mlx_pixel_put (mlx_ptr , win_ptr , (WIN_WIDTH / 2 ) + x , (WIN_HEIGHT / 2 ) - y , color );
28
28
}
29
29
30
30
void render_and_put_pixel (t_vars * vars , int x , int y , unsigned long point )
31
31
{
32
32
int final_x ;
33
33
int final_y ;
34
34
35
- final_x = (x - vars -> anchor_x ) * vars -> distance ;
36
- final_y = (y - vars -> anchor_y ) * vars -> distance ;
37
- put_pixel (vars -> mlx -> mlx_ptr , vars -> mlx -> win_ptr , final_x , final_y , get_color (point ));
38
- printf ("anchor point: %d %d\n" , vars -> anchor_x , vars -> anchor_y );
39
- printf ("coordinate: %d, %d\n" , final_x , final_y );
40
- printf ("distance: %d\n" , vars -> distance );
35
+ final_x = (int )((x - vars -> anchor_x ) * (vars -> distance ));
36
+ final_y = (int )((vars -> anchor_y - y ) * (vars -> distance ));
37
+ if (get_z (point ) > 0 )
38
+ put_pixel (vars -> mlx -> mlx_ptr , vars -> mlx -> win_ptr , final_x , final_y , 0xFFFFFF );
39
+ else
40
+ put_pixel (vars -> mlx -> mlx_ptr , vars -> mlx -> win_ptr , final_x , final_y , 0X0 );
41
+ printf ("x,y coordinate: %d, %d\n" , x , y );
42
+ printf ("map coordinate: %d, %d\n" , final_x , final_y );
41
43
}
42
44
43
45
void render_map (t_vars * vars )
44
46
{
45
47
int i ;
46
48
int j ;
49
+
47
50
i = 0 ;
51
+ printf ("distance: %lf\n" , vars -> distance );
52
+ printf ("line count: %d\n" , vars -> line_count );
53
+ printf ("line len: %d\n" , vars -> line_len );
54
+ printf ("anchor point: %d %d\n" , vars -> anchor_x , vars -> anchor_y );
48
55
while (vars -> map [i ])
49
56
{
50
57
j = 0 ;
51
58
while (vars -> map [i ][j ] != ULONG_MAX )
52
59
{
53
- render_and_put_pixel (vars , i , j , vars -> map [i ][j ]);
60
+ render_and_put_pixel (vars , j , i , vars -> map [i ][j ]);
54
61
j ++ ;
55
62
}
56
63
i ++ ;
@@ -59,12 +66,13 @@ void render_map(t_vars *vars)
59
66
60
67
void fdf (t_vars * vars )
61
68
{
62
- // mlx_hook(vars->mlx->mlx_ptr, ON_DESTROY, 0, close_win, vars->mlx);
63
- reset_camera (vars );
69
+ mlx_hook (vars -> mlx -> mlx_ptr , ON_DESTROY , 0 , close_win , vars -> mlx );
64
70
mlx_key_hook (vars -> mlx -> win_ptr , key_handler , vars );
71
+ reset_camera (vars );
72
+ render_map (vars );
65
73
mlx_loop (vars -> mlx -> mlx_ptr );
66
74
mlx_destroy_display (vars -> mlx -> mlx_ptr );
67
- free (vars -> mlx -> mlx_ptr );
75
+ // free(vars->mlx->mlx_ptr);
68
76
}
69
77
70
78
void set_map_props (t_vars * vars )
@@ -83,13 +91,18 @@ void set_map_props(t_vars *vars)
83
91
vars -> anchor_y = i / 2 ;
84
92
}
85
93
86
- int main ()
94
+ int main (int argc , char * * argv )
87
95
{
88
96
t_vars vars ;
89
97
t_mlx mlx ;
90
98
char * map_str ;
91
99
92
- map_str = read_file ("test_maps/2x2.fdf" );
100
+ if (argc != 2 )
101
+ {
102
+ write (STDERR_FILENO , "using: fdf <map>\n" , 17 );
103
+ return (1 );
104
+ }
105
+ map_str = read_file (argv [1 ]);
93
106
if (!map_str )
94
107
return (write (1 , "file couldn't read" , 18 ), 1 );
95
108
vars .map = map_string_to_arr_2d (map_str );
0 commit comments