From 05314c67655e5030d89e85087fba0a699d8a4ba7 Mon Sep 17 00:00:00 2001
From: salaaad2 <arthurdurant263@gmail.com>
Date: Fri, 14 Jan 2022 01:19:37 +0100
Subject: background can now be specified in map file

---
 meta/maps/stage_1_start.bfm | 1 +
 src/gameplay.cpp            | 8 ++++++++
 src/gameplay.hpp            | 2 ++
 src/main.cpp                | 9 ++++-----
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/meta/maps/stage_1_start.bfm b/meta/maps/stage_1_start.bfm
index 91ca04e..de9023d 100644
--- a/meta/maps/stage_1_start.bfm
+++ b/meta/maps/stage_1_start.bfm
@@ -2,3 +2,4 @@ BOSS 0 0
 ENEMIES 10 20
 WAVES 2 5
 NEXT stage_1_1.bfm
+BACKGROUND ../meta/media/sprites/background.png
diff --git a/src/gameplay.cpp b/src/gameplay.cpp
index 88da5ec..dd395ca 100644
--- a/src/gameplay.cpp
+++ b/src/gameplay.cpp
@@ -54,6 +54,10 @@ Game::Game(std::string const& path) : current(path) {
             ifs >> tok;
             nPerWave = std::atoi(tok.c_str());
         }
+        if (tok == "BACKGROUND") {
+            ifs >> tok;
+            background = tok;
+        }
     }
     ifs.close();
     enemies = new std::vector<Entity>;
@@ -334,3 +338,7 @@ std::string const& Game::getNext() const {
 std::string const& Game::getCurrent() const {
     return current;
 }
+
+std::string const& Game::getBackground() const {
+    return background;
+}
diff --git a/src/gameplay.hpp b/src/gameplay.hpp
index 7567efc..62103f4 100644
--- a/src/gameplay.hpp
+++ b/src/gameplay.hpp
@@ -58,6 +58,7 @@ class Game {
 
     std::string next;     // next level
     std::string current;  // next level
+    std::string background;  // next level
 
     int frameWidth;
     int frameHeight;
@@ -84,6 +85,7 @@ class Game {
 
     std::string const& getNext() const;     // returns next level's string
     std::string const& getCurrent() const;  // returns next level's string
+    std::string const& getBackground() const;  // returns next level's string
 };
 
 #endif  // GAMEPLAY_H_
diff --git a/src/main.cpp b/src/main.cpp
index 5d7c3be..56ad3e5 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -22,11 +22,10 @@ int main(void) {
     initWindow();
     InitWindow(SCREENWIDTH, SCREENHEIGHT, "WIP -- muchashooter THRESHOLD");
     auto nPick = 0;
-
+    Texture2D background;
     Game* game = nullptr;
 
 
-    Texture2D background = LoadTexture("../meta/media/sprites/background.png");
     std::string path = "../meta/maps";
     int i = 0;
     for (const auto& entry :
@@ -53,6 +52,7 @@ int main(void) {
                     s += "/";
                     s += pick[nPick];
                     game = new Game(s);
+                    background = LoadTexture(game->getBackground().c_str());
                     gs = GAMEPLAY;
                     game->start();
                 }
@@ -158,10 +158,9 @@ int main(void) {
                 break;
             }
             case (NEXT): {
-                ClearBackground(COOLPURPLE);
                 DrawCircle(SCREENWIDTH / 2, SCREENHEIGHT / 2, 200, BLACK);
-                DrawText("STAGE CLEARED\nNEXT LEVEL :\n",
-                         (SCREENWIDTH / 2) - 200, (SCREENHEIGHT / 2) - 50, 40,
+                DrawText("STAGE CLEARED\nNEXT LEVEL :",
+                         (SCREENWIDTH / 2) - 200, 200, 40,
                          WHITE);
                 DrawText(game->getNext().c_str(), (SCREENWIDTH / 2) - 100,
                          (SCREENHEIGHT / 2) + 60, 40, WHITE);
-- 
cgit v1.2.3