diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2023-05-02 00:48:03 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2023-05-02 00:48:03 -0400 |
commit | 531898b0fef9f81e82ad5d5f38d2c627a0c10e56 (patch) | |
tree | 7e00c98c41f23ae7dca09e3f187ae52497a380b7 /game_data.cpp | |
parent | 704c08bb439b9a90f7be2d26a0c8b01777e2cf2c (diff) | |
download | lingo-ap-tracker-531898b0fef9f81e82ad5d5f38d2c627a0c10e56.tar.gz lingo-ap-tracker-531898b0fef9f81e82ad5d5f38d2c627a0c10e56.tar.bz2 lingo-ap-tracker-531898b0fef9f81e82ad5d5f38d2c627a0c10e56.zip |
Use Google's style guide
Diffstat (limited to 'game_data.cpp')
-rw-r--r-- | game_data.cpp | 73 |
1 files changed, 37 insertions, 36 deletions
diff --git a/game_data.cpp b/game_data.cpp index db574d3..0ae5468 100644 --- a/game_data.cpp +++ b/game_data.cpp | |||
@@ -1,9 +1,10 @@ | |||
1 | #include "game_data.h" | 1 | #include "game_data.h" |
2 | 2 | ||
3 | #include <hkutil/string.h> | 3 | #include <hkutil/string.h> |
4 | #include <iostream> | ||
5 | #include <yaml-cpp/yaml.h> | 4 | #include <yaml-cpp/yaml.h> |
6 | 5 | ||
6 | #include <iostream> | ||
7 | |||
7 | LingoColor GetColorForString(const std::string &str) { | 8 | LingoColor GetColorForString(const std::string &str) { |
8 | if (str == "black") { | 9 | if (str == "black") { |
9 | return LingoColor::kBlack; | 10 | return LingoColor::kBlack; |
@@ -33,7 +34,7 @@ GameData::GameData() { | |||
33 | YAML::Node lingo_config = YAML::LoadFile("assets/LL1.yaml"); | 34 | YAML::Node lingo_config = YAML::LoadFile("assets/LL1.yaml"); |
34 | YAML::Node areas_config = YAML::LoadFile("assets/areas.yaml"); | 35 | YAML::Node areas_config = YAML::LoadFile("assets/areas.yaml"); |
35 | 36 | ||
36 | rooms_.reserve(lingo_config.size() + 1); // The +1 is for Menu | 37 | rooms_.reserve(lingo_config.size() + 1); // The +1 is for Menu |
37 | 38 | ||
38 | for (const auto &room_it : lingo_config) { | 39 | for (const auto &room_it : lingo_config) { |
39 | int room_id = AddOrGetRoom(room_it.first.as<std::string>()); | 40 | int room_id = AddOrGetRoom(room_it.first.as<std::string>()); |
@@ -44,49 +45,49 @@ GameData::GameData() { | |||
44 | Room &from_room_obj = rooms_[from_room_id]; | 45 | Room &from_room_obj = rooms_[from_room_id]; |
45 | 46 | ||
46 | switch (entrance_it.second.Type()) { | 47 | switch (entrance_it.second.Type()) { |
47 | case YAML::NodeType::Scalar: { | 48 | case YAML::NodeType::Scalar: { |
48 | // This is just "true". | 49 | // This is just "true". |
49 | from_room_obj.exits.push_back({.destination_room = room_id}); | 50 | from_room_obj.exits.push_back({.destination_room = room_id}); |
50 | break; | 51 | break; |
51 | } | ||
52 | case YAML::NodeType::Map: { | ||
53 | Exit exit_obj; | ||
54 | exit_obj.destination_room = room_id; | ||
55 | |||
56 | if (entrance_it.second["door"]) { | ||
57 | std::string door_room = room_obj.name; | ||
58 | if (entrance_it.second["room"]) { | ||
59 | door_room = entrance_it.second["room"].as<std::string>(); | ||
60 | } | ||
61 | exit_obj.door = AddOrGetDoor( | ||
62 | door_room, entrance_it.second["door"].as<std::string>()); | ||
63 | } | 52 | } |
64 | 53 | case YAML::NodeType::Map: { | |
65 | from_room_obj.exits.push_back(exit_obj); | ||
66 | break; | ||
67 | } | ||
68 | case YAML::NodeType::Sequence: { | ||
69 | for (const auto &option : entrance_it.second) { | ||
70 | Exit exit_obj; | 54 | Exit exit_obj; |
71 | exit_obj.destination_room = room_id; | 55 | exit_obj.destination_room = room_id; |
72 | 56 | ||
73 | std::string door_room = room_obj.name; | 57 | if (entrance_it.second["door"]) { |
74 | if (option["room"]) { | 58 | std::string door_room = room_obj.name; |
75 | door_room = option["room"].as<std::string>(); | 59 | if (entrance_it.second["room"]) { |
60 | door_room = entrance_it.second["room"].as<std::string>(); | ||
61 | } | ||
62 | exit_obj.door = AddOrGetDoor( | ||
63 | door_room, entrance_it.second["door"].as<std::string>()); | ||
76 | } | 64 | } |
77 | exit_obj.door = | ||
78 | AddOrGetDoor(door_room, option["door"].as<std::string>()); | ||
79 | 65 | ||
80 | from_room_obj.exits.push_back(exit_obj); | 66 | from_room_obj.exits.push_back(exit_obj); |
67 | break; | ||
81 | } | 68 | } |
69 | case YAML::NodeType::Sequence: { | ||
70 | for (const auto &option : entrance_it.second) { | ||
71 | Exit exit_obj; | ||
72 | exit_obj.destination_room = room_id; | ||
73 | |||
74 | std::string door_room = room_obj.name; | ||
75 | if (option["room"]) { | ||
76 | door_room = option["room"].as<std::string>(); | ||
77 | } | ||
78 | exit_obj.door = | ||
79 | AddOrGetDoor(door_room, option["door"].as<std::string>()); | ||
82 | 80 | ||
83 | break; | 81 | from_room_obj.exits.push_back(exit_obj); |
84 | } | 82 | } |
85 | default: { | 83 | |
86 | // This shouldn't happen. | 84 | break; |
87 | std::cout << "Error reading game data: " << entrance_it << std::endl; | 85 | } |
88 | break; | 86 | default: { |
89 | } | 87 | // This shouldn't happen. |
88 | std::cout << "Error reading game data: " << entrance_it << std::endl; | ||
89 | break; | ||
90 | } | ||
90 | } | 91 | } |
91 | } | 92 | } |
92 | 93 | ||