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
#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"
+++ /dev/null
-#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);
-}
+++ /dev/null
-#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_
#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
Lt *lt;
Background background;
Vec2f camera_position;
- LevelFolder level_folder;
WigglyText wiggly_text;
-
Dynarray items;
size_t cursor;
int selected_item;
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",
.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);
}