#include "./game.h"
#include "./error.h"
#include "./level.h"
+#include "./sound_medium.h"
#include "./lt.h"
typedef enum game_state_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);
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;
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);
#include "./error.h"
#include "./game.h"
#include "./lt.h"
+#include "./path.h"
#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600
// ------------------------------
- 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);