feat: better floor and walls
This commit is contained in:
parent
45622cf647
commit
a00a02e527
9 changed files with 59 additions and 20 deletions
2
Makefile
2
Makefile
|
@ -5,7 +5,7 @@ INCLUDES = includes/
|
||||||
CODE = main error env input timedloop \
|
CODE = main error env input timedloop \
|
||||||
data_assets data_sprites \
|
data_assets data_sprites \
|
||||||
display1 display2 display_utils sprite \
|
display1 display2 display_utils sprite \
|
||||||
room1 room2 room_utils point \
|
room1 room2 room_utils1 room_utils2 point \
|
||||||
object_character object_snas object_wall
|
object_character object_snas object_wall
|
||||||
LIBRARIES = mlx libtf
|
LIBRARIES = mlx libtf
|
||||||
LIBRARIES_FILES = libtf/libtf.a
|
LIBRARIES_FILES = libtf/libtf.a
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/03/11 15:56:31 by mcolonna #+# #+# */
|
/* Created: 2024/03/11 15:56:31 by mcolonna #+# #+# */
|
||||||
/* Updated: 2024/03/29 15:02:34 by mcolonna ### ########.fr */
|
/* Updated: 2024/04/02 12:43:24 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
# include "data_assets.h"
|
# include "data_assets.h"
|
||||||
|
|
||||||
# define NB_SPRITES 8
|
# define NB_SPRITES 9
|
||||||
|
|
||||||
typedef enum e_assettype
|
typedef enum e_assettype
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,8 @@ extern const t_spriteinfo g_spritesmap[NB_SPRITES];
|
||||||
typedef enum e_spriteid
|
typedef enum e_spriteid
|
||||||
{
|
{
|
||||||
CASE_WALL,
|
CASE_WALL,
|
||||||
CASE_FLOOR,
|
CASE_FLOOR_1,
|
||||||
|
CASE_FLOOR_2,
|
||||||
SPR_SNAS,
|
SPR_SNAS,
|
||||||
SPR_SNAS_DOWN,
|
SPR_SNAS_DOWN,
|
||||||
SPR_SNAS_UP,
|
SPR_SNAS_UP,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/03/07 23:00:45 by mcolonna #+# #+# */
|
/* Created: 2024/03/07 23:00:45 by mcolonna #+# #+# */
|
||||||
/* Updated: 2024/03/29 15:44:11 by mcolonna ### ########.fr */
|
/* Updated: 2024/04/02 12:42:52 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@ typedef struct s_room
|
||||||
typedef struct s_roomcase
|
typedef struct s_roomcase
|
||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
t_spriteid surface_spr;
|
|
||||||
t_object_init object;
|
t_object_init object;
|
||||||
} t_roomcase;
|
} t_roomcase;
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/03/13 16:34:01 by mcolonna #+# #+# */
|
/* Created: 2024/03/13 16:34:01 by mcolonna #+# #+# */
|
||||||
/* Updated: 2024/03/28 17:54:32 by mcolonna ### ########.fr */
|
/* Updated: 2024/04/02 12:32:46 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -21,5 +21,6 @@ void room_getsize(t_memclass mc, t_room *r, t_const_string path);
|
||||||
t_roomcase *getroomcase(t_const_string path, char c);
|
t_roomcase *getroomcase(t_const_string path, char c);
|
||||||
void moveobject(t_room room, t_point start, t_point move);
|
void moveobject(t_room room, t_point start, t_point move);
|
||||||
bool isinlist(void *addr, t_list list);
|
bool isinlist(void *addr, t_list list);
|
||||||
|
void room_patch(t_room *room);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
0011111
|
1111111
|
||||||
0010000
|
1010001
|
||||||
0011P00
|
1011P01
|
||||||
0000000
|
1000001
|
||||||
0000000
|
1111111
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/03/11 16:02:29 by mcolonna #+# #+# */
|
/* Created: 2024/03/11 16:02:29 by mcolonna #+# #+# */
|
||||||
/* Updated: 2024/03/29 15:02:13 by mcolonna ### ########.fr */
|
/* Updated: 2024/04/02 12:39:30 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
||||||
const t_spriteinfo g_spritesmap[NB_SPRITES] = {
|
const t_spriteinfo g_spritesmap[NB_SPRITES] = {
|
||||||
{WALL_BORDER, 1, 50, 50, ANIMATION},
|
{WALL_BORDER, 1, 50, 50, ANIMATION},
|
||||||
{FLOOR_1, 1, 50, 50, ANIMATION},
|
{FLOOR_1, 1, 50, 50, ANIMATION},
|
||||||
|
{FLOOR_2, 1, 50, 50, ANIMATION},
|
||||||
{OBJECT_SNAS, 0, 50, 50, CHARACTER_STILL},
|
{OBJECT_SNAS, 0, 50, 50, CHARACTER_STILL},
|
||||||
{OBJECT_SNAS_DOWN, 1, 50, 50, ANIMATION},
|
{OBJECT_SNAS_DOWN, 1, 50, 50, ANIMATION},
|
||||||
{OBJECT_SNAS_UP, 1, 50, 50, ANIMATION},
|
{OBJECT_SNAS_UP, 1, 50, 50, ANIMATION},
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/03/07 23:31:22 by mcolonna #+# #+# */
|
/* Created: 2024/03/07 23:31:22 by mcolonna #+# #+# */
|
||||||
/* Updated: 2024/03/29 17:32:26 by mcolonna ### ########.fr */
|
/* Updated: 2024/04/02 12:42:18 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ static bool room_fromfile2(
|
||||||
while (*line && *line != '\n')
|
while (*line && *line != '\n')
|
||||||
{
|
{
|
||||||
roomcase = getroomcase(path, *line);
|
roomcase = getroomcase(path, *line);
|
||||||
room->surfaces[*i] = sprite_init(roomcase->surface_spr);
|
|
||||||
if (roomcase->object)
|
if (roomcase->object)
|
||||||
{
|
{
|
||||||
room->objects[*i] = mem_alloc(err, room->mc, sizeof(t_object));
|
room->objects[*i] = mem_alloc(err, room->mc, sizeof(t_object));
|
||||||
|
@ -65,6 +64,7 @@ t_room room_fromfile(t_const_string path)
|
||||||
while (room_fromfile2(fd, path, &i, &r))
|
while (room_fromfile2(fd, path, &i, &r))
|
||||||
;
|
;
|
||||||
mem_freeall(mc);
|
mem_freeall(mc);
|
||||||
|
room_patch(&r);
|
||||||
return (r);
|
return (r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* room_utils.c :+: :+: :+: */
|
/* room_utils1.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/03/13 16:26:28 by mcolonna #+# #+# */
|
/* Created: 2024/03/13 16:26:28 by mcolonna #+# #+# */
|
||||||
/* Updated: 2024/03/29 17:21:17 by mcolonna ### ########.fr */
|
/* Updated: 2024/04/02 12:44:30 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -16,9 +16,9 @@
|
||||||
#include "object.h"
|
#include "object.h"
|
||||||
|
|
||||||
static t_roomcase g_roomcases[] = {
|
static t_roomcase g_roomcases[] = {
|
||||||
{c: '0', surface_spr: CASE_FLOOR, object: NULL},
|
{c: '0', object: NULL},
|
||||||
{c: '1', surface_spr: CASE_FLOOR, object: wall_init},
|
{c: '1', object: wall_init},
|
||||||
{c: 'P', surface_spr: CASE_FLOOR, object: snas_init},
|
{c: 'P', object: snas_init},
|
||||||
{c: '\0'}
|
{c: '\0'}
|
||||||
};
|
};
|
||||||
|
|
37
src/room_utils2.c
Normal file
37
src/room_utils2.c
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* room_utils2.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/04/02 12:33:48 by mcolonna #+# #+# */
|
||||||
|
/* Updated: 2024/04/02 12:51:20 by mcolonna ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "room_utils.h"
|
||||||
|
#include "data_sprites.h"
|
||||||
|
|
||||||
|
void room_patch(t_room *room)
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
|
||||||
|
x = -1;
|
||||||
|
while (++x < room->width)
|
||||||
|
{
|
||||||
|
y = -1;
|
||||||
|
while (++y < room->height)
|
||||||
|
{
|
||||||
|
if (y == 0 || y == room->height - 1)
|
||||||
|
{
|
||||||
|
room->surfaces[y * room->width + x] = sprite_init(CASE_WALL);
|
||||||
|
room->objects[y * room->width + x] = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
room->surfaces[y * room->width + x] = sprite_init(
|
||||||
|
CASE_FLOOR_1 + (x + y) % 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue