]> git.lizzy.rs Git - nothing.git/commitdiff
Delete LevelFolder
authorrexim <reximkut@gmail.com>
Sun, 15 Dec 2019 18:24:10 +0000 (01:24 +0700)
committerrexim <reximkut@gmail.com>
Sun, 15 Dec 2019 18:24:10 +0000 (01:24 +0700)
CMakeLists.txt
nothing.c
src/game/level_folder.c [deleted file]
src/game/level_folder.h [deleted file]
src/game/level_picker.c

index 30d8cb66bd5dfa6716f4ea88fed9bb57c03e9594..4bf7a9ee155b21d18eeda3d5e001e0d7892336f3 100644 (file)
@@ -88,8 +88,6 @@ add_executable(nothing
   src/game/credits.c
   src/game/settings.h
   src/game/settings.c
-  src/game/level_folder.c
-  src/game/level_folder.h
   src/game/sound_samples.h
   src/game/sound_samples.c
   src/game/sprite_font.h
index c94abcffa6e4d523c8aecd3aa22faeacc87b5da2..d460dba188ec545104d5f86ce0889a1c73394c82 100644 (file)
--- a/nothing.c
+++ b/nothing.c
@@ -16,7 +16,6 @@
 #include "src/game/level_picker.c"
 #include "src/game/credits.c"
 #include "src/game/settings.c"
-#include "src/game/level_folder.c"
 #include "src/game/sound_samples.c"
 #include "src/game/sprite_font.c"
 #include "src/main.c"
diff --git a/src/game/level_folder.c b/src/game/level_folder.c
deleted file mode 100644 (file)
index 3e580fc..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "system/stacktrace.h"
-#include "system/lt.h"
-#include "system/lt_adapters.h"
-#include "system/nth_alloc.h"
-#include "system/log.h"
-#include "system/line_stream.h"
-#include "system/str.h"
-#include "system/file.h"
-#include "dynarray.h"
-
-#include "./level_folder.h"
-
-void level_folder_read(const char *dirpath, LevelFolder *folder)
-{
-    DIR *level_dir = opendir(dirpath);
-    if (level_dir == NULL) {
-        log_fail("Can't open asset folder: %s\n", dirpath);
-        abort();
-    }
-
-    dynarray_clear(&folder->filepaths);
-
-    char filepath[METADATA_FILEPATH_MAX_SIZE];
-    for (struct dirent *d = readdir(level_dir);
-         d != NULL;
-         d = readdir(level_dir)) {
-        if (*d->d_name == '.') continue;
-
-        snprintf(filepath, METADATA_FILEPATH_MAX_SIZE,
-                 "%s/%s", dirpath, d->d_name);
-        dynarray_push(&folder->filepaths, filepath);
-    }
-
-    closedir(level_dir);
-}
diff --git a/src/game/level_folder.h b/src/game/level_folder.h
deleted file mode 100644 (file)
index 66a2f5d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef LEVEL_FOLDER_H_
-#define LEVEL_FOLDER_H_
-
-#include "config.h"
-
-typedef struct {
-    Dynarray filepaths;
-} LevelFolder;
-
-static inline
-LevelFolder create_level_folder(void)
-{
-    LevelFolder result = {
-        .filepaths = create_dynarray(METADATA_FILEPATH_MAX_SIZE),
-    };
-    return result;
-}
-
-static inline
-void destroy_level_folder(LevelFolder level_folder)
-{
-    free(level_folder.filepaths.data);
-}
-
-void level_folder_read(const char *dirpath, LevelFolder *folder);
-
-#endif  // LEVEL_FOLDER_H_
index fa653ae635ed8043c1381c4641abc255d7771421..995428a1fcdce86d6996f9e1b4f043c7bdb3e4fc 100644 (file)
@@ -8,9 +8,9 @@
 #include "system/stacktrace.h"
 #include "system/str.h"
 #include "system/log.h"
-#include "game/level_folder.h"
 #include "ui/wiggly_text.h"
 #include "ui/slider.h"
+#include "system/file.h"
 
 #define TITLE_MARGIN_TOP 100.0f
 #define TITLE_MARGIN_BOTTOM 100.0f
@@ -23,9 +23,7 @@ struct LevelPicker
     Lt *lt;
     Background background;
     Vec2f camera_position;
-    LevelFolder level_folder;
     WigglyText wiggly_text;
-
     Dynarray items;
     size_t cursor;
     int selected_item;
@@ -46,13 +44,30 @@ LevelPicker *create_level_picker(const char *dirpath)
         RETURN_LT(lt, NULL);
     }
     level_picker->lt = lt;
-
     level_picker->background = create_background(hexstr("073642"));
-
     level_picker->camera_position = vec(0.0f, 0.0f);
 
-    level_picker->level_folder = create_level_folder();
-    level_folder_read("./assets/levels", &level_picker->level_folder);
+    {
+        level_picker->items = create_dynarray(METADATA_FILEPATH_MAX_SIZE);
+
+        DIR *level_dir = opendir(dirpath);
+        if (level_dir == NULL) {
+            log_fail("Can't open asset folder: %s\n", dirpath);
+            abort();
+        }
+
+        char filepath[METADATA_FILEPATH_MAX_SIZE];
+        for (struct dirent *d = readdir(level_dir);
+             d != NULL;
+             d = readdir(level_dir)) {
+            if (*d->d_name == '.') continue;
+
+            snprintf(filepath, METADATA_FILEPATH_MAX_SIZE,
+                     "%s/%s", dirpath, d->d_name);
+            dynarray_push(&level_picker->items, filepath);
+        }
+        closedir(level_dir);
+    }
 
     level_picker->wiggly_text = (WigglyText) {
         .text = "Select Level",
@@ -60,15 +75,13 @@ LevelPicker *create_level_picker(const char *dirpath)
         .color = COLOR_WHITE,
     };
 
-    level_picker->items = level_picker->level_folder.filepaths;
-
     return level_picker;
 }
 
 void destroy_level_picker(LevelPicker *level_picker)
 {
     trace_assert(level_picker);
-    destroy_level_folder(level_picker->level_folder);
+    free(level_picker->items.data);
     RETURN_LT0(level_picker->lt);
 }