summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Kaiser2024-05-09 16:19:29 +0200
committerDominik Kaiser2024-05-09 16:19:29 +0200
commit8cec16bdb6f980565b29d5b55379e481018753f6 (patch)
tree44749e569e77339b4830c979572563bb88d3c9dd
parent7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc (diff)
downloadso_long-8cec16bdb6f980565b29d5b55379e481018753f6.tar.gz
so_long-8cec16bdb6f980565b29d5b55379e481018753f6.zip
Setup basic structure and add basic input handling
-rw-r--r--Makefile2
-rw-r--r--include/so_long.h18
-rw-r--r--src/init.c31
-rw-r--r--src/loop.c18
-rw-r--r--src/main.c10
5 files changed, 72 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 145fc8a..6315601 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ LIBS = -Llibft -lft -lm -Lmlx -lmlx
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))
diff --git a/include/so_long.h b/include/so_long.h
index c1c966b..98b4711 100644
--- a/include/so_long.h
+++ b/include/so_long.h
@@ -6,13 +6,25 @@
/* 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
diff --git a/src/init.c b/src/init.c
new file mode 100644
index 0000000..569bed8
--- /dev/null
+++ b/src/init.c
@@ -0,0 +1,31 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* 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);
+}
diff --git a/src/loop.c b/src/loop.c
new file mode 100644
index 0000000..506dad1
--- /dev/null
+++ b/src/loop.c
@@ -0,0 +1,18 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* 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);
+}
diff --git a/src/main.c b/src/main.c
index e76703f..db6b524 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,13 +6,17 @@
/* 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);
}