]> git.lizzy.rs Git - nothing.git/commitdiff
Generalize extrema functions
authorrexim <reximkut@gmail.com>
Tue, 10 Dec 2019 13:32:16 +0000 (20:32 +0700)
committerrexim <reximkut@gmail.com>
Tue, 10 Dec 2019 13:32:16 +0000 (20:32 +0700)
src/game/level/level_editor.c
src/main.c
src/math/extrema.h

index 79e8f39df0b2b6c84f8770d265f13028d2781430..662bd2911dd4bcc1be55bedbfb3e0b76471c3e87 100644 (file)
@@ -63,12 +63,12 @@ LevelEditor *create_level_editor(Cursor *cursor)
     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));
+           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));
+           MIN(size_t, sizeof(DEFAULT_LEVEL_TITLE), METADATA_TITLE_MAX_SIZE - 1));
 
     level_editor->background_layer = create_background_layer(hexstr("fffda5"));
 
index 480e8fdbe8ccf8c30d16ed07c7fa6a1c45136a6b..878bb2bdf9185a5821d9ca326ac070891f16fae2 100644 (file)
@@ -233,7 +233,7 @@ int main(int argc, char *argv[])
         }
 
         const int64_t end_frame_time = (int64_t) SDL_GetTicks();
-        SDL_Delay((unsigned int) max_int64(10, delta_time - (end_frame_time - begin_frame_time)));
+        SDL_Delay((unsigned int) MAX(int64_t, 10, delta_time - (end_frame_time - begin_frame_time)));
     }
 
     RETURN_LT(lt, 0);
index baed32df0008bf498bf651ccd37bc4faaddeabc6..d06229422d86b681efa4f8e5a301a5113eff0db8 100644 (file)
@@ -3,25 +3,24 @@
 
 #include <stdint.h>
 
-// WARNING! Any attempts to "generalize" or "improve" this translation
-// unit will result in an instantly closed Pull Request without any
-// further discussion.
-static inline
-int64_t max_int64(int64_t a, int64_t b)
-{
-    return a > b ? a : b;
-}
+#define MAX_INSTANCE(type)                      \
+    static inline                               \
+    type max_##type(type a, type b) {           \
+        return a > b ? a : b;                   \
+    }                                           \
 
-static inline
-size_t max_size_t(size_t a, size_t b)
-{
-    return a > b ? a : b;
-}
+MAX_INSTANCE(int64_t)
+MAX_INSTANCE(size_t)
+#define MAX(type, a, b) max_##type(a, b)
 
-static inline
-size_t min_size_t(size_t a, size_t b)
-{
-    return a < b ? a : b;
-}
+#define MIN_INSTANCE(type)                      \
+    static inline                               \
+    type min_##type(type a, type b) {           \
+        return a < b ? a : b;                   \
+    }                                           \
+
+MIN_INSTANCE(int64_t)
+MIN_INSTANCE(size_t)
+#define MIN(type, a, b) min_##type(a, b)
 
 #endif  // EXTREMA_H_