From 6307feb53d978cbf7f50df26a7b0bc63252cfbd4 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Thu, 30 Apr 2026 19:02:35 +0200 Subject: Title screen and direct map load with --map param --- main.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index e89aa1a..e497e73 100644 --- a/main.c +++ b/main.c @@ -2,8 +2,29 @@ #define NONSTD_IMPLEMENTATION #define VFS_IMPLEMENTATION #include "all.h" +#include +#include + +int main(int argc, char *argv[]) { + char map_path[256] = "maps/demo3.map"; + bool skip_title = false; + + static struct option long_options[] = { + {"map", required_argument, 0, 'm'}, + {0, 0, 0, 0} + }; + + int opt; + int option_index = 0; + while ((opt = getopt_long_only(argc, argv, "m:", long_options, &option_index)) != -1) { + switch (opt) { + case 'm': + strncpy(map_path, optarg, sizeof(map_path) - 1); + skip_title = true; + break; + } + } -int main(void) { SetConfigFlags(FLAG_VSYNC_HINT | FLAG_WINDOW_RESIZABLE | FLAG_WINDOW_HIGHDPI); InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_TITLE); @@ -14,7 +35,17 @@ int main(void) { SetTargetFPS(GetMonitorRefreshRate(monitor)); vfs_init("data.pak"); - InitGame("maps/demo3.map"); + InitGame(); + SetMap(map_path); + + if (skip_title) { + if (LoadMap(game.map_path)) { + game.mode = STATE_PLAYING; + game.cursor_captured = true; + DisableCursor(); + } + } + game.vsync = true; while (!WindowShouldClose()) { -- cgit v1.2.3