FRMWRKS = -framework OpenGL -framework AppKit
VPATH := src
-SRC = main.c
+SRC = main.c init.c loop.c input.c
OBJ_DIR := obj
OBJ := $(addprefix $(OBJ_DIR)/, $(SRC:%.c=%.o))
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:02 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 12:01:41 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 16:13:43 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef SO_LONG_H
-#define SO_LONG_H
+# define SO_LONG_H
-#include "mlx.h"
+# include "libft.h"
+# include "mlx.h"
+
+typedef struct s_game
+{
+ void *mlx;
+ void *window;
+} t_game;
+
+int init(t_game *game);
+int loop(t_game *game);
+int on_key_down(int key, t_game *game);
+int on_key_up(int keycode, t_game *game);
#endif // SO_LONG_H
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* init.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2024/05/09 14:50:09 by dkaiser #+# #+# */
+/* Updated: 2024/05/09 16:13:22 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "mlx.h"
+#include "so_long.h"
+
+static void init_hooks(t_game *game)
+{
+ mlx_loop_hook(game->mlx, loop, game);
+ /* mlx_key_hook(game->mlx, on_key_down, game); */
+ mlx_hook(game->window, 2, 0, on_key_down, game);
+ mlx_hook(game->window, 3, 0, on_key_up, game);
+}
+
+int init(t_game *game)
+{
+ game->mlx = mlx_init();
+ game->window = mlx_new_window(game->mlx, 1920, 1080, "so_long");
+ // TODO: make size and title dynamic
+ init_hooks(game);
+ return (0);
+}
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* loop.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2024/05/09 15:09:24 by dkaiser #+# #+# */
+/* Updated: 2024/05/09 15:10:15 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "so_long.h"
+
+int loop(t_game *game)
+{
+ return (0);
+}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:13 by dkaiser #+# #+# */
-/* Updated: 2024/05/08 15:56:23 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 15:15:29 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "mlx.h"
#include "so_long.h"
-int main(void) {
+int main(void)
+{
+ t_game game;
- return 0;
+ init(&game);
+ mlx_loop(game.mlx);
}