From 0e7406db969fb72c14b46cecae64e4fbe767ca99 Mon Sep 17 00:00:00 2001 From: Timothy O'Barr Date: Wed, 2 Sep 2026 11:24:10 -0500 Subject: [PATCH] Fixed parsing Scenery --- Engine/headers/room.h | 2 +- Engine/src/room.cpp | 13 +++--- Resources/Rooms.json | 92 ++++++++++++++++++++++++++++++++++++------- main.cpp | 22 +++++++---- 4 files changed, 100 insertions(+), 29 deletions(-) diff --git a/Engine/headers/room.h b/Engine/headers/room.h index 2c573e6..7ae7918 100644 --- a/Engine/headers/room.h +++ b/Engine/headers/room.h @@ -31,7 +31,7 @@ private: public: Room(); - Room(int id, std::string name, std::string desc, std::vector e, std::vector s); + Room(int i, std::string n, std::string desc, std::vector e, std::vector s); Room(const Room &r); void PrintAvalibleExits(); diff --git a/Engine/src/room.cpp b/Engine/src/room.cpp index 2cbef0e..58e0bc8 100644 --- a/Engine/src/room.cpp +++ b/Engine/src/room.cpp @@ -10,12 +10,12 @@ Room::Room() { exits.clear(); } -Room::Room(int id, std::string n, std::string desc, std::vector e, std::vector s) { - id = id; - name = n; - description = desc; - exits = e; - scenery = s; +Room::Room(int i, std::string n, std::string desc, std::vector e, std::vector s) { + id = i; + name = std::move(n); + description = std::move(desc); + exits = std::move(e); + scenery = std::move(s); } Room::Room(const Room &r) { @@ -23,6 +23,7 @@ Room::Room(const Room &r) { name = r.name; description = r.description; exits = r.exits; + scenery = r.scenery; } Room::~Room() { diff --git a/Resources/Rooms.json b/Resources/Rooms.json index c8a6e75..04baad9 100644 --- a/Resources/Rooms.json +++ b/Resources/Rooms.json @@ -1,39 +1,101 @@ [ [ { - "description": "A fascinating Room. There's ... nothing in it, neat.", + "description": "First Test Room", "exits": [ + { + "dir": 1, + "exitID": 0, + "isLocked": false + }, { "dir": 2, "exitID": 1, "isLocked": false + } + ], + "id": 0, + "name": "Test Room 1", + "scenery": [ + { + "canTake": false, + "description": "A Grey Rock", + "id": 0, + "keywords": [ + "Rock" + ], + "name": "Rock", + "roomIdItBelongsTo": 0, + "type": 1 + } + ] + }, + { + "description": "A court yard", + "exits": [ + { + "dir": 3, + "exitID": 2, + "isLocked": false + }, + { + "dir": 2, + "exitID": 3, + "isLocked": false }, { "dir": 1, - "exitID": 2, + "exitID": 4, "isLocked": false } ], + "id": 1, + "name": "Test Room 2", "scenery": [ { + "canTake": false, + "description": "A fine looking Tree stands in the courtyard", + "id": 1, + "keywords": [ + "Tree" + ], + "name": "Tree", + "roomIdItBelongsTo": 1, + "type": 1 } - ], - "id": -8528, - "name": "Test Room 1" - }, - { - "description": "Another test room. What a shocker", - "exits": [], - "id": -8608, - "name": "Test Room 2" + ] } ], [ { - "description": "Testing another column", - "exits": [], - "id": -8656, - "name": "Test Room 3" + "description": "You can hear the sound of a waterfall nearby", + "exits": [ + { + "dir": 0, + "exitID": 5, + "isLocked": false + }, + { + "dir": 2, + "exitID": 6, + "isLocked": false + } + ], + "id": 3, + "name": "Test Room 3", + "scenery": [ + { + "canTake": false, + "description": "A fine waterfall on a cliff", + "id": 3, + "keywords": [ + "Waterfall" + ], + "name": "Waterfall", + "roomIdItBelongsTo": 3, + "type": 1 + } + ] } ] ] diff --git a/main.cpp b/main.cpp index e00c98c..7296698 100644 --- a/main.cpp +++ b/main.cpp @@ -1,18 +1,20 @@ #include "game.h" -int main(int argc, char *argv[]) { - Game game; // Calls default constructor which Initializes GAME +void EditRooms() { + fs::path path("Resources/rooms.json"); - std::vector> rooms = { + std::vector> roomDat = { { { 0, "Test Room 1", "First Test Room", {{0, S, false}, {1, E, false}}, - {{0, "Rock", "A Grey Rock", {"Rock"}, ObjectType::SCENERY, false, 0}}, + { + {0, "Rock", "A Grey Rock", {"Rock"}, ObjectType::SCENERY, false, 0}, + }, }, {1, "Test Room 2", @@ -33,19 +35,25 @@ int main(int argc, char *argv[]) { {{5, N, false}, {6, E, false}}, {{3, "Waterfall", "A fine waterfall on a cliff", {"Waterfall"}, ObjectType::SCENERY, false, 3}}}}}; - nlohmann::json j(rooms); + nlohmann::json j(roomDat); std::fstream outFile(absolute(path), std::fstream::in | std::fstream::out | std::fstream::app); outFile << std::setw(4) << j << std::endl; outFile.close(); - /*if (!game) { +} + + +int main(int argc, char *argv[]) { + Game game; // Calls default constructor which Initializes GAME + + if (!game) { game.Init(); Game::SetGameInstance(&game); } while (game.GetIsActive()) { game.Run(); - }*/ + } return 0; }