]> git.lizzy.rs Git - nothing.git/commitdiff
(#128) Integrate sound_medium into the game
authorrexim <reximkut@gmail.com>
Sat, 24 Mar 2018 13:19:43 +0000 (20:19 +0700)
committerrexim <reximkut@gmail.com>
Sat, 24 Mar 2018 13:19:43 +0000 (20:19 +0700)
src/game.c
src/game.h
src/main.c

index 73dcc1843dd151f6f46c018201892d0b170f1659..ed30d609503d45e505f772509b3aa1a0fe655437 100644 (file)
@@ -8,6 +8,7 @@
 #include "./game.h"
 #include "./error.h"
 #include "./level.h"
+#include "./sound_medium.h"
 #include "./lt.h"
 
 typedef enum game_state_t {
@@ -24,9 +25,11 @@ typedef struct game_t {
     game_state_t state;
     level_t *level;
     char *level_file_path;
+    sound_medium_t *sound_medium;
 } game_t;
 
-game_t *create_game(const char *level_file_path)
+game_t *create_game(const char *level_file_path,
+                    const char *sounds_folder_path)
 {
     assert(level_file_path);
 
@@ -57,6 +60,14 @@ game_t *create_game(const char *level_file_path)
 
     strcpy(game->level_file_path, level_file_path);
 
+    game->sound_medium = PUSH_LT(
+        lt,
+        create_sound_medium_from_folder(sounds_folder_path),
+        destroy_sound_medium);
+    if (game->sound_medium == NULL) {
+        RETURN_LT(lt, NULL);
+    }
+
     game->state = GAME_STATE_RUNNING;
     game->lt = lt;
 
index 8691b4c9b01b6b6a955e9d1694ee97562296e3c8..3c5461420121452d1b611803f38f5bcbaeea6376 100644 (file)
@@ -4,7 +4,8 @@
 typedef struct game_t game_t;
 typedef struct SDL_Renderer SDL_Renderer;
 
-game_t *create_game(const char *platforms_file_path);
+game_t *create_game(const char *platforms_file_path,
+                    const char *sounds_folder_path);
 void destroy_game(game_t *game);
 
 int game_render(const game_t *game, SDL_Renderer *renderer);
index 08bb741c72f0b7f9a0e22a824764128e31f1a482..9260c237db44d236ad4842026572f05e52f09219 100644 (file)
@@ -9,6 +9,7 @@
 #include "./error.h"
 #include "./game.h"
 #include "./lt.h"
+#include "./path.h"
 
 #define SCREEN_WIDTH 800
 #define SCREEN_HEIGHT 600
@@ -95,7 +96,12 @@ int main(int argc, char *argv[])
 
     // ------------------------------
 
-    game_t *const game = PUSH_LT(lt, create_game(argv[1]), destroy_game);
+    char *sounds_folder = PUSH_LT(lt, base_path_folder("sounds"), free);
+    if (sounds_folder == NULL) {
+        RETURN_LT(lt, -1);
+    }
+
+    game_t *const game = PUSH_LT(lt, create_game(argv[1], sounds_folder), destroy_game);
     if (game == NULL) {
         print_current_error_msg("Could not create the game object");
         RETURN_LT(lt, -1);