]> git.lizzy.rs Git - nothing.git/commitdiff
Remove LevelMetadata as a concept
authorrexim <reximkut@gmail.com>
Sat, 14 Dec 2019 20:12:33 +0000 (03:12 +0700)
committerrexim <reximkut@gmail.com>
Sat, 14 Dec 2019 20:12:33 +0000 (03:12 +0700)
14 files changed:
CMakeLists.txt
assets/levels/level-01.txt
assets/levels/level-02.txt
assets/levels/platforms.txt
nothing.c
src/config.h
src/game/level.c
src/game/level/level_editor.c
src/game/level/level_editor.h
src/game/level_folder.c
src/game/level_folder.h
src/game/level_metadata.c [deleted file]
src/game/level_metadata.h [deleted file]
src/game/level_picker.c

index a01974cf3075f7657cdb605a44fd7c212a9855e3..8734b1d8a0ce61bf50ddaf5df256bf702ff30423 100644 (file)
@@ -127,8 +127,6 @@ add_executable(nothing
   src/ui/slider.c
   src/ui/grid.h
   src/ui/grid.c
-  src/game/level_metadata.h
-  src/game/level_metadata.c
   src/game/level/level_editor.h
   src/game/level/level_editor.c
   src/game/level/level_editor/color_picker.h
index 2e99ebf30680c52e62b7c97eabcfbf31a71da45b..fb7f66f7ebd6809a7c64303111d9e1015da67434 100644 (file)
@@ -1,5 +1,4 @@
-1
-Level 01
+2
 fffda5
 28.578053 -456.515228 ff8080
 23
index ff607fa86b2f94c94ae277e2cefbecf3e9e711c0..62660de075b20495d36947b48add6f341ed3ff4d 100644 (file)
@@ -1,5 +1,4 @@
-1
-Level 02
+2
 0a2b2a
 0.000000 0.000000 f2ff80
 1
index 0a5f151aac5e04474cb122423bd41f0feb7e45c9..bac8967a8b5c3d95a6ea2fa555bc7af9d0f361bb 100644 (file)
@@ -1,5 +1,4 @@
-1
-Platforms
+2
 073642
 117.106163 417.591919 b58900
 22
index 9939248257a11224cac3c7628201abcd959740ec..c62701a6866f8c8353e8f605b368de012cc9dc14 100644 (file)
--- a/nothing.c
+++ b/nothing.c
@@ -34,7 +34,6 @@
 #include "src/ui/wiggly_text.c"
 #include "src/ui/slider.c"
 #include "src/ui/grid.c"
-#include "src/game/level_metadata.c"
 #include "src/game/level/level_editor.c"
 #include "src/game/level/level_editor/color_picker.c"
 #include "src/game/level/level_editor/rect_layer.c"
index 4f2a845fea1712db137a289ce6675a8701f28daf..7a964391441f5cc9eb4930bb207fee9c6400ad6b 100644 (file)
@@ -26,6 +26,6 @@
 #define METADATA_VERSION_MAX_SIZE 256
 #define METADATA_FILEPATH_MAX_SIZE 512
 
-#define VERSION "1"
+#define VERSION "2"
 
 #endif  // CONFIG_H_
index dc843675c90fc50c2e61d7d5827059c0e2d8dde6..b833895740fc21a8ab8046d76ad6f51114d1bab9 100644 (file)
@@ -13,7 +13,6 @@
 #include "game/level/player.h"
 #include "game/level/regions.h"
 #include "game/level/rigid_bodies.h"
-#include "game/level_metadata.h"
 #include "game/level/level_editor/rect_layer.h"
 #include "game/level/level_editor/point_layer.h"
 #include "game/level/level_editor/player_layer.h"
@@ -40,7 +39,6 @@ struct Level
     Lt *lt;
 
     LevelState state;
-    LevelMetadata *metadata;
     Background background;
     RigidBodies *rigid_bodies;
     Player *player;
index 662bd2911dd4bcc1be55bedbfb3e0b76471c3e87..799e8b9439d8c2440a51e52441ad70443566fa21 100644 (file)
@@ -2,7 +2,6 @@
 
 #include "game/camera.h"
 #include "game/sound_samples.h"
-#include "game/level_metadata.h"
 #include "game/level/boxes.h"
 #include "game/level/level_editor/action_picker.h"
 #include "game/level/level_editor/color_picker.h"
@@ -60,16 +59,6 @@ LevelEditor *create_level_editor(Cursor *cursor)
         RETURN_LT(lt, NULL);
     }
 
-    memset(level_editor->metadata.version, 0, METADATA_VERSION_MAX_SIZE);
-    memcpy(level_editor->metadata.version,
-           VERSION,
-           MIN(size_t, sizeof(VERSION), METADATA_VERSION_MAX_SIZE - 1));
-
-    memset(level_editor->metadata.title, 0, METADATA_TITLE_MAX_SIZE);
-    memcpy(level_editor->metadata.title,
-           DEFAULT_LEVEL_TITLE,
-           MIN(size_t, sizeof(DEFAULT_LEVEL_TITLE), METADATA_TITLE_MAX_SIZE - 1));
-
     level_editor->background_layer = create_background_layer(hexstr("fffda5"));
 
     level_editor->player_layer =
@@ -196,7 +185,21 @@ LevelEditor *create_level_editor_from_file(const char *file_name, Cursor *cursor
         RETURN_LT(lt, NULL);
     }
 
-    if (metadata_load_from_line_stream(&level_editor->metadata, level_stream, level_editor->file_name) < 0) {
+    const char *line = line_stream_next(level_stream);
+    if (line == NULL) {
+        RETURN_LT(lt, NULL);
+    }
+
+    char version[METADATA_VERSION_MAX_SIZE] = {0};
+    memcpy(version, line,
+           MIN(size_t,
+               strlen(line),
+               METADATA_VERSION_MAX_SIZE - 1));
+    trim_endline(version);
+
+    if (strcmp(version, VERSION) != 0) {
+        log_fail("Version `%s` is not supported. Expected version `%s`.\n",
+                 version, VERSION);
         RETURN_LT(lt, NULL);
     }
 
@@ -565,11 +568,7 @@ static int level_editor_dump(LevelEditor *level_editor)
         fopen(level_editor->file_name, "w"),
         fclose_lt);
 
-    if (fprintf(filedump, "%s\n", level_editor->metadata.version) < 0) {
-        return -1;
-    }
-
-    if (fprintf(filedump, "%s\n", level_editor->metadata.title) < 0) {
+    if (fprintf(filedump, "%s", VERSION) < 0) {
         return -1;
     }
 
index e3d979932491e27a7f634c385439dd9d96a17f28..ac55e05288d5d6ea1ddf2ec806b5194cf3af32c0 100644 (file)
@@ -5,7 +5,6 @@
 #include "game/level/level_editor/layer_picker.h"
 #include "game/level/level_editor/undo_history.h"
 #include "game/level/level_editor/action_picker.h"
-#include "game/level_metadata.h"
 #include "ui/wiggly_text.h"
 #include "ui/cursor.h"
 
@@ -31,7 +30,6 @@ struct LevelEditor
     LayerPicker layer_picker;
     FadingWigglyText notice;
 
-    LevelMetadata metadata;
     RectLayer *boxes_layer;
     RectLayer *platforms_layer;
     RectLayer *back_platforms_layer;
index 3ee43e47c4c3eb27ca13b86a75350173d0dcff04..3e580fcc82d962fef966fa1fb17547331fde1d33 100644 (file)
@@ -11,7 +11,6 @@
 #include "system/str.h"
 #include "system/file.h"
 #include "dynarray.h"
-#include "game/level_metadata.h"
 
 #include "./level_folder.h"
 
index 44d8923c24c9978ad1a62a87f14fd0a9a89d15ec..6915f87c989ecdbeccbb1e338b9c0350ceafc22c 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef LEVEL_FOLDER_H_
 #define LEVEL_FOLDER_H_
 
-#include "level_metadata.h"
-
 typedef struct {
     Dynarray filepaths;
 } LevelFolder;
diff --git a/src/game/level_metadata.c b/src/game/level_metadata.c
deleted file mode 100644 (file)
index 512bebe..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "system/stacktrace.h"
-#include "system/nth_alloc.h"
-#include "system/lt.h"
-#include "system/line_stream.h"
-#include "system/str.h"
-#include "level_metadata.h"
-#include "math/extrema.h"
-
-int metadata_load_from_line_stream(LevelMetadata *metadata,
-                                   LineStream *line_stream,
-                                   const char *filepath)
-{
-    trace_assert(metadata);
-    trace_assert(line_stream);
-
-    memset(metadata->version, 0, METADATA_VERSION_MAX_SIZE);
-    memset(metadata->title, 0, METADATA_TITLE_MAX_SIZE);
-    memset(metadata->filepath, 0, METADATA_FILEPATH_MAX_SIZE);
-
-    const char *line = line_stream_next(line_stream);
-    if (line == NULL) return -1;
-
-    memcpy(metadata->version,
-           line,
-           min_size_t(strlen(line), METADATA_VERSION_MAX_SIZE - 1));
-    trim_endline(metadata->version);
-
-    line = line_stream_next(line_stream);
-    if (line == NULL) return -1;
-
-    memcpy(metadata->title,
-           line,
-           min_size_t(strlen(line), METADATA_VERSION_MAX_SIZE - 1));
-    trim_endline(metadata->title);
-
-    memcpy(metadata->filepath,
-           filepath,
-           min_size_t(strlen(filepath), METADATA_FILEPATH_MAX_SIZE - 1));
-    trim_endline(metadata->filepath);
-
-    return 0;
-}
-
-int metadata_load_from_file(LevelMetadata *metadata, const char *filepath)
-{
-    trace_assert(metadata);
-    trace_assert(filepath);
-
-    LineStream *line_stream = create_line_stream(filepath, "r", 256);
-    if (line_stream == NULL) return -1;
-
-    int err = metadata_load_from_line_stream(metadata, line_stream, filepath);
-    destroy_line_stream(line_stream);
-    return err;
-}
diff --git a/src/game/level_metadata.h b/src/game/level_metadata.h
deleted file mode 100644 (file)
index 970bd59..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef LEVEL_METADATA_H_
-#define LEVEL_METADATA_H_
-
-#include "config.h"
-
-typedef struct LineStream LineStream;
-
-typedef struct {
-    char filepath[METADATA_FILEPATH_MAX_SIZE];
-    char version[METADATA_VERSION_MAX_SIZE];
-    char title[METADATA_TITLE_MAX_SIZE];
-} LevelMetadata;
-
-int metadata_load_from_file(LevelMetadata *metadata, const char *filepath);
-int metadata_load_from_line_stream(LevelMetadata *metadata, LineStream *line_stream, const char *filepath);
-
-#endif  // LEVEL_METADATA_H_
index 9ab72f6e52305870922540e558ea41d9a70817fb..3877364efd54d6175faf34155172e2967a37cb14 100644 (file)
@@ -26,13 +26,6 @@ struct LevelPicker
     ListSelector list_selector;
 };
 
-static inline
-const char *list_item_text(void *element)
-{
-    trace_assert(element);
-    return ((LevelMetadata *)element)->title;
-}
-
 LevelPicker *create_level_picker(const char *dirpath)
 {
     trace_assert(dirpath);