feat: firsk is still until snas moves

This commit is contained in:
mcolonna 2024-04-20 16:22:14 +02:00
parent 50fcb82e9e
commit d88c4c4205
4 changed files with 14 additions and 13 deletions

View file

@ -6,7 +6,7 @@
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */ /* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/26 15:26:13 by mcolonna #+# #+# */ /* Created: 2024/02/26 15:26:13 by mcolonna #+# #+# */
/* Updated: 2024/04/20 15:46:49 by mcolonna ### ########.fr */ /* Updated: 2024/04/20 16:14:20 by mcolonna ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -40,11 +40,12 @@ typedef struct s_env
int level_count; int level_count;
int level_current; int level_current;
int level_to_load; int level_to_load;
// room // play
t_room room; t_room room;
t_camera camera; t_camera camera;
int ketchup; int ketchup;
int max_ketchup; int max_ketchup;
bool snas_moved;
// moves // moves
int moves; int moves;
} t_env; } t_env;

View file

@ -6,7 +6,7 @@
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */ /* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/11 13:55:04 by mcolonna #+# #+# */ /* Created: 2024/04/11 13:55:04 by mcolonna #+# #+# */
/* Updated: 2024/04/18 18:37:10 by mcolonna ### ########.fr */ /* Updated: 2024/04/20 16:17:08 by mcolonna ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,6 +14,8 @@
static t_direction firsk_brain(t_point pos) static t_direction firsk_brain(t_point pos)
{ {
if (!g_env.snas_moved)
return (NO_DIRECTION);
return (pathfinding(pos, room_find(snas_init), true)); return (pathfinding(pos, room_find(snas_init), true));
} }

View file

@ -6,7 +6,7 @@
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */ /* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/15 15:27:03 by mcolonna #+# #+# */ /* Created: 2024/03/15 15:27:03 by mcolonna #+# #+# */
/* Updated: 2024/04/19 14:54:49 by mcolonna ### ########.fr */ /* Updated: 2024/04/20 16:21:05 by mcolonna ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -49,19 +49,16 @@ static t_point snas_loop(t_object *obj, t_point pos)
data->tp_spr = sprite_init(SPR_EXIT_TP); data->tp_spr = sprite_init(SPR_EXIT_TP);
} }
if (data->state == SNAS_STATE_WAITING_TO_WIN) if (data->state == SNAS_STATE_WAITING_TO_WIN)
{ if (!--data->wait_before_win)
data->wait_before_win--; return (win(), point_init(0, 0));
if (!data->wait_before_win)
{
win();
return (point_init(0, 0));
}
}
if (data->state > SNAS_STATE_GOING_TO_EXIT) if (data->state > SNAS_STATE_GOING_TO_EXIT)
return (point_init(0, 0)); return (point_init(0, 0));
r = character_loop(&data->character, pos, snas_brain); r = character_loop(&data->character, pos, snas_brain);
if (r.x || r.y) if (r.x || r.y)
{
g_env.moves++; g_env.moves++;
g_env.snas_moved = true;
}
return (r); return (r);
} }

View file

@ -6,7 +6,7 @@
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */ /* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/09 15:11:29 by mcolonna #+# #+# */ /* Created: 2024/04/09 15:11:29 by mcolonna #+# #+# */
/* Updated: 2024/04/20 15:50:09 by mcolonna ### ########.fr */ /* Updated: 2024/04/20 16:15:11 by mcolonna ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -106,6 +106,7 @@ void room_init(t_const_string path)
room_fromfile(&g_env.room, path); room_fromfile(&g_env.room, path);
g_env.ketchup = 0; g_env.ketchup = 0;
g_env.max_ketchup = room_count(ketchup_init); g_env.max_ketchup = room_count(ketchup_init);
g_env.snas_moved = false;
if (room_count(exit_init) != 1) if (room_count(exit_init) != 1)
error_str(path, "there must be exactly 1 exit."); error_str(path, "there must be exactly 1 exit.");
if (room_count(ketchup_init) < 1) if (room_count(ketchup_init) < 1)