nieuwe parsing
This commit is contained in:
parent
6a26998064
commit
ed57e220be
27
inc/map.h
27
inc/map.h
@ -3,10 +3,10 @@
|
|||||||
/* :::::::: */
|
/* :::::::: */
|
||||||
/* map.h :+: :+: */
|
/* map.h :+: :+: */
|
||||||
/* +:+ */
|
/* +:+ */
|
||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/17 19:19:19 by qmennen #+# #+# */
|
/* Created: 2025/04/17 19:19:19 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/05/14 12:42:54 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 13:39:13 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -15,16 +15,17 @@
|
|||||||
|
|
||||||
# include "cub3d.h"
|
# include "cub3d.h"
|
||||||
|
|
||||||
int map_create(t_game **game, const char *mapfile);
|
int map_create(t_game **game, const char *mapfile);
|
||||||
void map_free(t_map *map);
|
void map_free(t_map *map);
|
||||||
void print_map(t_map *map);
|
void print_map(t_map *map);
|
||||||
t_tile get_tile(t_map *map, int x, int y);
|
t_tile get_tile(t_map *map, int x, int y);
|
||||||
int enclosed_map(t_map *map);
|
int enclosed_map(t_map *map);
|
||||||
void grid_free(t_tile **grid, int height);
|
void grid_free(t_tile **grid, int height);
|
||||||
t_tile **copy_map(t_tile **grid, int width, int height);
|
t_tile **copy_map(t_tile **grid, int width, int height);
|
||||||
int parse_args(const char *mapfile, t_game *game);
|
int parse_args(const char *mapfile, t_game *game);
|
||||||
t_tile **create_grid(int width, int height);
|
t_tile **create_grid(int width, int height);
|
||||||
int find_player_or_empty(t_map *map, int *x, int *y);
|
int find_player_or_empty(t_map *map, int *x, int *y);
|
||||||
int floodfill(t_map *map, int x, int y);
|
int floodfill(t_map *map, int x, int y);
|
||||||
|
t_sprite make_sprite(mlx_texture_t *texture, double x, double y, int collectible);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
15
inc/types.h
15
inc/types.h
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */
|
/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/05/23 15:17:29 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 13:37:39 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -58,6 +58,7 @@ typedef struct s_player
|
|||||||
float battery;
|
float battery;
|
||||||
} t_player;
|
} t_player;
|
||||||
|
|
||||||
|
|
||||||
typedef struct s_sprite
|
typedef struct s_sprite
|
||||||
{
|
{
|
||||||
int n_frames;
|
int n_frames;
|
||||||
@ -70,20 +71,24 @@ typedef struct s_sprite
|
|||||||
t_vec2 pos;
|
t_vec2 pos;
|
||||||
} t_sprite;
|
} t_sprite;
|
||||||
|
|
||||||
|
typedef struct s_sprite_lib
|
||||||
|
{
|
||||||
|
mlx_texture_t *texture;
|
||||||
|
int collectible;
|
||||||
|
} t_sprite_lib;
|
||||||
|
|
||||||
typedef struct s_map
|
typedef struct s_map
|
||||||
{
|
{
|
||||||
unsigned int width;
|
unsigned int width;
|
||||||
unsigned int height;
|
unsigned int height;
|
||||||
t_tile **grid;
|
t_tile **grid;
|
||||||
char *north_texture;
|
|
||||||
char *south_texture;
|
|
||||||
char *west_texture;
|
|
||||||
char *east_texture;
|
|
||||||
mlx_texture_t *texture_floor;
|
mlx_texture_t *texture_floor;
|
||||||
mlx_texture_t *texture_ceiling;
|
mlx_texture_t *texture_ceiling;
|
||||||
mlx_texture_t *textures[4];
|
mlx_texture_t *textures[4];
|
||||||
t_sprite *sprites;
|
t_sprite *sprites;
|
||||||
|
t_sprite_lib *sprite_lib;
|
||||||
unsigned int n_sprites;
|
unsigned int n_sprites;
|
||||||
|
unsigned int n_sprites_max;
|
||||||
unsigned int floor_color;
|
unsigned int floor_color;
|
||||||
unsigned int ceiling_color;
|
unsigned int ceiling_color;
|
||||||
} t_map;
|
} t_map;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/23 12:20:38 by whaffman #+# #+# */
|
/* Created: 2025/04/23 12:20:38 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/07 11:21:14 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 18:57:09 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|||||||
@ -3,10 +3,10 @@
|
|||||||
/* :::::::: */
|
/* :::::::: */
|
||||||
/* map_create.c :+: :+: */
|
/* map_create.c :+: :+: */
|
||||||
/* +:+ */
|
/* +:+ */
|
||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/23 12:21:13 by whaffman #+# #+# */
|
/* Created: 2025/04/23 12:21:13 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/22 18:45:53 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 13:58:34 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,7 +20,15 @@ static int map_allocate(t_game **game)
|
|||||||
perror("Error allocating memory for (*game)->map");
|
perror("Error allocating memory for (*game)->map");
|
||||||
return (FAILURE);
|
return (FAILURE);
|
||||||
}
|
}
|
||||||
ft_memset((*game)->map->textures, 0, sizeof((*game)->map->textures));
|
ft_memset((*game)->map, 0, sizeof((*game)->map));
|
||||||
|
(*game)->map->sprite_lib = malloc(sizeof(t_sprite_lib) * 26);
|
||||||
|
if (!(*game)->map->sprite_lib)
|
||||||
|
{
|
||||||
|
perror("Error allocating memory for (*game)->map->sprite_lib");
|
||||||
|
free((*game)->map);
|
||||||
|
return (FAILURE);
|
||||||
|
}
|
||||||
|
ft_memset((*game)->map->sprite_lib, 0, sizeof(t_sprite_lib) * 26);
|
||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/23 12:22:28 by whaffman #+# #+# */
|
/* Created: 2025/04/23 12:22:28 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/24 14:27:07 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 18:56:27 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -25,11 +25,14 @@ void map_free(t_map *map)
|
|||||||
mlx_delete_texture(map->texture_floor);
|
mlx_delete_texture(map->texture_floor);
|
||||||
if(map->texture_ceiling)
|
if(map->texture_ceiling)
|
||||||
mlx_delete_texture(map->texture_ceiling);
|
mlx_delete_texture(map->texture_ceiling);
|
||||||
while (map->n_sprites > 0)
|
i = 0;
|
||||||
|
while (i < 26)
|
||||||
{
|
{
|
||||||
map->n_sprites--;
|
if (map->sprite_lib[i].texture)
|
||||||
mlx_delete_texture(map->sprites[map->n_sprites].texture);
|
mlx_delete_texture(map->sprite_lib[i].texture);
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
free(map->sprite_lib);
|
||||||
free(map->sprites);
|
free(map->sprites);
|
||||||
i = 4;
|
i = 4;
|
||||||
while (i > 0)
|
while (i > 0)
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/22 13:10:06 by whaffman #+# #+# */
|
/* Created: 2025/04/22 13:10:06 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/23 17:29:05 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 11:13:53 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -100,6 +100,28 @@ int handle_fc_texture(char *token, t_map *map)
|
|||||||
|
|
||||||
int handle_sprite(char *token, t_map *map)
|
int handle_sprite(char *token, t_map *map)
|
||||||
{
|
{
|
||||||
|
t_sprite_lib sprite;
|
||||||
|
char symbol;
|
||||||
|
char *texture_path;
|
||||||
|
|
||||||
|
if (token[1] == 'c')
|
||||||
|
sprite.collectible = 1;
|
||||||
|
else
|
||||||
|
sprite.collectible = 0;
|
||||||
|
symbol = *ft_strtok(NULL, " ");
|
||||||
|
if (symbol < 'a' || symbol > 'z')
|
||||||
|
return (ft_putstr_fd("Error: Invalid sprite symbol\n", 2), FAILURE);
|
||||||
|
texture_path = ft_strtok(NULL, " ");
|
||||||
|
if (texture_path == NULL)
|
||||||
|
return (ft_putstr_fd("Error: Missing texture path\n", 2), FAILURE);
|
||||||
|
if (ft_strtok(NULL, " ") != NULL)
|
||||||
|
return (ft_putstr_fd("Error: Extra tokens after path\n", 2), FAILURE);
|
||||||
|
sprite.texture = load_texture(texture_path);
|
||||||
|
if (sprite.texture == NULL)
|
||||||
|
return (FAILURE);
|
||||||
|
if (map->sprite_lib[symbol - 'a'].texture != NULL)
|
||||||
|
return (ft_putstr_fd("Error: Sprite already defined for this symbol\n", 2), FAILURE);
|
||||||
|
map->sprite_lib[symbol - 'a'] = sprite;
|
||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* :::::::: */
|
||||||
/* parse_map.c :+: :+: :+: */
|
/* parse_map.c :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ */
|
||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/22 13:12:04 by whaffman #+# #+# */
|
/* Created: 2025/04/22 13:12:04 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/22 14:01:24 by qmennen ### ########.fr */
|
/* Updated: 2025/05/25 18:54:20 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -74,26 +74,92 @@ int parse_map_line(char **lines, t_game *game, int y)
|
|||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
int parse_map(char **lines, t_game *game)
|
int count_sprites(char *line)
|
||||||
|
{
|
||||||
|
int count;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
i = 0;
|
||||||
|
while (line[i])
|
||||||
|
{
|
||||||
|
if (line[i] >= 'a' && line[i] <= 'z')
|
||||||
|
count++;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return (count);
|
||||||
|
}
|
||||||
|
int prepare_map(char **lines, t_game *game)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
t_map *map;
|
t_map *map;
|
||||||
|
|
||||||
y = 0;
|
|
||||||
while (lines[y])
|
|
||||||
y++;
|
|
||||||
map = game->map;
|
map = game->map;
|
||||||
|
y = 0;
|
||||||
|
map->n_sprites_max = 0;
|
||||||
|
map->n_sprites = 0;
|
||||||
|
while (lines[y])
|
||||||
|
{
|
||||||
|
map->n_sprites_max += count_sprites(lines[y]);
|
||||||
|
y++;
|
||||||
|
}
|
||||||
map->height = y;
|
map->height = y;
|
||||||
map->width = map_width(lines);
|
map->width = map_width(lines);
|
||||||
map->grid = malloc(sizeof(t_tile *) * (map->height + 1));
|
map->grid = malloc(sizeof(t_tile *) * (map->height + 1));
|
||||||
if (!map->grid)
|
if (!map->grid)
|
||||||
return (FAILURE);
|
return (FAILURE);
|
||||||
ft_memset(map->grid, 0, sizeof(t_tile *) * (map->height + 1));
|
ft_memset(map->grid, 0, sizeof(t_tile *) * (map->height + 1));
|
||||||
|
printf(" n_sprite_max %d\n", map->n_sprites_max);
|
||||||
|
map->sprites = malloc(sizeof(t_sprite) * (map->n_sprites_max + 1));
|
||||||
|
if (!map->sprites)
|
||||||
|
return (FAILURE);
|
||||||
|
ft_memset(map->sprites, 0, sizeof(t_sprite) * (map->n_sprites_max+ 1));
|
||||||
|
return (SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
int parse_map_line_sprites(char *line, t_game *game, int y)
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
t_map *map;
|
||||||
|
t_sprite_lib *sprite_lib;
|
||||||
|
|
||||||
|
map = game->map;
|
||||||
|
sprite_lib = map->sprite_lib;
|
||||||
|
x = 0;
|
||||||
|
while (line[x])
|
||||||
|
{
|
||||||
|
if (line[x] >= 'a' && line[x] <= 'z')
|
||||||
|
{
|
||||||
|
if (sprite_lib[line[x] - 'a'].texture == NULL)
|
||||||
|
{
|
||||||
|
ft_putstr_fd("Error: Undefined sprite symbol\n", 2);
|
||||||
|
return (FAILURE);
|
||||||
|
}
|
||||||
|
map->sprites[map->n_sprites] = make_sprite(
|
||||||
|
sprite_lib[line[x] - 'a'].texture,
|
||||||
|
(double)x + 0.5f, (double)y + 0.5f,
|
||||||
|
sprite_lib[line[x] - 'a'].collectible);
|
||||||
|
map->n_sprites++;
|
||||||
|
}
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
return (SUCCESS);
|
||||||
|
}
|
||||||
|
int parse_map(char **lines, t_game *game)
|
||||||
|
{
|
||||||
|
int y;
|
||||||
|
t_map *map;
|
||||||
|
|
||||||
|
map = game->map;
|
||||||
|
if (!prepare_map(lines, game))
|
||||||
|
return (FAILURE);
|
||||||
y = 0;
|
y = 0;
|
||||||
while (y < map->height)
|
while (y < map->height)
|
||||||
{
|
{
|
||||||
if (!parse_map_line(lines, game, y))
|
if (!parse_map_line(lines, game, y))
|
||||||
return (FAILURE);
|
return (FAILURE);
|
||||||
|
if (!parse_map_line_sprites(lines[y], game, y))
|
||||||
|
return (FAILURE);
|
||||||
y++;
|
y++;
|
||||||
}
|
}
|
||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/22 13:12:31 by whaffman #+# #+# */
|
/* Created: 2025/04/22 13:12:31 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/07 11:48:30 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 11:49:44 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -22,6 +22,8 @@ int parse_tile(char c)
|
|||||||
return (TILE_VOID);
|
return (TILE_VOID);
|
||||||
else if (c == 'N' || c == 'S' || c == 'E' || c == 'W')
|
else if (c == 'N' || c == 'S' || c == 'E' || c == 'W')
|
||||||
return (TILE_PLAYER);
|
return (TILE_PLAYER);
|
||||||
|
else if (c >= 'a' && c <= 'z')
|
||||||
|
return (TILE_EMPTY);
|
||||||
else
|
else
|
||||||
return (-2);
|
return (-2);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/22 13:11:18 by whaffman #+# #+# */
|
/* Created: 2025/04/22 13:11:18 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/05/14 20:00:32 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 10:53:31 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -17,10 +17,10 @@ void print_config(t_map *map)
|
|||||||
printf("Map:\n");
|
printf("Map:\n");
|
||||||
printf("Width: %d, Height: %d\n", map->width, map->height);
|
printf("Width: %d, Height: %d\n", map->width, map->height);
|
||||||
printf("Textures:\n");
|
printf("Textures:\n");
|
||||||
printf("NO: %s\n", map->north_texture);
|
// printf("NO: %s\n", map->north_texture);
|
||||||
printf("SO: %s\n", map->south_texture);
|
// printf("SO: %s\n", map->south_texture);
|
||||||
printf("WE: %s\n", map->west_texture);
|
// printf("WE: %s\n", map->west_texture);
|
||||||
printf("EA: %s\n", map->east_texture);
|
// printf("EA: %s\n", map->east_texture);
|
||||||
printf("Floor color: %u\n", map->floor_color);
|
printf("Floor color: %u\n", map->floor_color);
|
||||||
printf("Ceiling color: %u\n", map->ceiling_color);
|
printf("Ceiling color: %u\n", map->ceiling_color);
|
||||||
printf("Grid:\n");
|
printf("Grid:\n");
|
||||||
|
|||||||
@ -3,34 +3,29 @@
|
|||||||
/* :::::::: */
|
/* :::::::: */
|
||||||
/* initialize.c :+: :+: */
|
/* initialize.c :+: :+: */
|
||||||
/* +:+ */
|
/* +:+ */
|
||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/22 17:08:26 by qmennen #+# #+# */
|
/* Created: 2025/04/22 17:08:26 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/05/23 17:28:36 by whaffman ######## odam.nl */
|
/* Updated: 2025/05/25 13:41:32 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "cub3d.h"
|
#include "cub3d.h"
|
||||||
|
|
||||||
static t_sprite make_sprite(char *path, double x, double y, int collectible)
|
t_sprite make_sprite(mlx_texture_t *texture, double x, double y, int collectible)
|
||||||
{
|
{
|
||||||
t_sprite sprite;
|
t_sprite sprite;
|
||||||
|
|
||||||
ft_memset(&sprite, 0, sizeof(t_sprite));
|
ft_memset(&sprite, 0, sizeof(t_sprite));
|
||||||
sprite.texture = mlx_load_png(path);
|
sprite.texture = texture;
|
||||||
if (!sprite.texture)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Error loading texture: %s\n", path);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (sprite.texture->width % 64 != 0)
|
if (sprite.texture->width % 64 != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Error: Texture %s width not a multiple of 64\n", path);
|
ft_putstr_fd("Error: Texture width is not a multiple of 64\n", 2);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (sprite.texture->height != 64)
|
if (sprite.texture->height != 64)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Error: Texture %s height is not 64\n", path);
|
ft_putstr_fd("Error: Texture height must be 64\n", 2);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
sprite.n_frames = sprite.texture->width / 64;
|
sprite.n_frames = sprite.texture->width / 64;
|
||||||
@ -43,23 +38,23 @@ static t_sprite make_sprite(char *path, double x, double y, int collectible)
|
|||||||
|
|
||||||
static int init_temp(t_game **game)
|
static int init_temp(t_game **game)
|
||||||
{
|
{
|
||||||
t_sprite *sprites;
|
// t_sprite *sprites;
|
||||||
|
|
||||||
(*game)->map->sprites = malloc(sizeof(t_sprite) * 10);
|
// (*game)->map->sprites = malloc(sizeof(t_sprite) * 10);
|
||||||
if (!(*game)->map->sprites)
|
// if (!(*game)->map->sprites)
|
||||||
return (FAILURE);
|
// return (FAILURE);
|
||||||
sprites = (*game)->map->sprites;
|
// sprites = (*game)->map->sprites;
|
||||||
sprites[0] = make_sprite("./assets/battery.png", 3.5, 3.5, 1);
|
// sprites[0] = make_sprite("./assets/battery.png", 3.5, 3.5, 1);
|
||||||
sprites[1] = make_sprite("./assets/plant.png", 2.5, 3.5, 0);
|
// sprites[1] = make_sprite("./assets/plant.png", 2.5, 3.5, 0);
|
||||||
sprites[2] = make_sprite("./assets/plant.png", 1.5, 3.5, 0);
|
// sprites[2] = make_sprite("./assets/plant.png", 1.5, 3.5, 0);
|
||||||
sprites[3] = make_sprite("./assets/broken_mirror.png", 3.5, 4.5, 0);
|
// sprites[3] = make_sprite("./assets/broken_mirror.png", 3.5, 4.5, 0);
|
||||||
sprites[4] = make_sprite("./assets/lamp.png", 2.5, 5.5, 0);
|
// sprites[4] = make_sprite("./assets/lamp.png", 2.5, 5.5, 0);
|
||||||
sprites[5] = make_sprite("./assets/battery.png", 10.5, 6.5, 1);
|
// sprites[5] = make_sprite("./assets/battery.png", 10.5, 6.5, 1);
|
||||||
sprites[6] = make_sprite("./assets/plant.png", 14.5, 3.5, 0);
|
// sprites[6] = make_sprite("./assets/plant.png", 14.5, 3.5, 0);
|
||||||
sprites[7] = make_sprite("./assets/battery.png", 2.5, 7.5, 1);
|
// sprites[7] = make_sprite("./assets/battery.png", 2.5, 7.5, 1);
|
||||||
sprites[8] = make_sprite("./assets/broken_mirror.png", 42.5, 4.5, 0);
|
// sprites[8] = make_sprite("./assets/broken_mirror.png", 42.5, 4.5, 0);
|
||||||
sprites[9] = make_sprite("./assets/lamp.png", 9.5, 10.5, 0);
|
// sprites[9] = make_sprite("./assets/lamp.png", 9.5, 10.5, 0);
|
||||||
(*game)->map->n_sprites = 10;
|
// (*game)->map->n_sprites = 10;
|
||||||
(*game)->screen->hud = mlx_texture_to_image((*game)->screen->mlx,
|
(*game)->screen->hud = mlx_texture_to_image((*game)->screen->mlx,
|
||||||
mlx_load_png("./assets/overlay2.png"));
|
mlx_load_png("./assets/overlay2.png"));
|
||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
|
|||||||
27
test.cub
27
test.cub
@ -15,21 +15,26 @@ C 100,100,200
|
|||||||
FT ./assets/floor.png
|
FT ./assets/floor.png
|
||||||
CT ./assets/ceiling64x64.png
|
CT ./assets/ceiling64x64.png
|
||||||
|
|
||||||
|
-s a ./assets/lamp.png
|
||||||
|
-c b ./assets/battery.png
|
||||||
|
-s p ./assets/plant.png
|
||||||
|
-s m ./assets/broken_mirror.png
|
||||||
|
|
||||||
1111111 111 1111 111111 1111111111 111111
|
1111111 111 1111 111111 1111111111 111111
|
||||||
1000001110111001 100001 1000000001 10001
|
1000001110111001 100001 1000000001 10001
|
||||||
1001000000000001 100001 100000110111100011
|
1001000000000001 100001 100000110111100011
|
||||||
1000001110000001110011111111 110000001000000001
|
10b0001110000001110011111111 110000001000000001
|
||||||
1000001 10001000000010000001 100000001000000001
|
1000001 1000100a000010000001 100000001000000001
|
||||||
1000001110001000000000000001111100000001000000001
|
100m00111000100000b00000000111110p00000100p00m001
|
||||||
1000000000001111111111100000000000111111000000001
|
10b0000000001111111111100000000000111111000000001
|
||||||
1000000W00001 1000011111111 1000001001
|
1000000W00001 1000011111111 1000001001
|
||||||
1000011111001 111111100001 1111111111110001
|
10p0011111001 111111100001 1111111111110001
|
||||||
100001 1001 1000000000011111111000010111 10001
|
100001 1001 1p00000000011111111000010111 10b01
|
||||||
111111 1001 1000001000000000001000000101 100001
|
111111 1001 1000001000000000001000000101 100001
|
||||||
1001 1000001111111111111000010001 1000001
|
1001 10000p1111111111111000010001 10000m1
|
||||||
1001 1000000000000000000001110001 100001
|
1001 100000000000000000000111b001 100001
|
||||||
1001 1000000000000000000011 11111 100001
|
1001 1b00000000000p00000011 11111 100001
|
||||||
10011111111100111111111111111111001110001
|
10011111111100111111111111111111001110001
|
||||||
1000000000000000000000000000000000000001
|
1000000000000000000000b000000000000000001
|
||||||
11111100111111101100111100011101011111111
|
111111b0111111101100111100011101011111111
|
||||||
1111 1111111 11111 11111
|
1111 1111111 11111 11111
|
||||||
Loading…
Reference in New Issue
Block a user