--- - pos: [1050, 954] room: Starting Room door: Back Right Door - pos: [986, 1034] room: Starting Room door: Rhyme Room Entrance - pos: [990, 956] special: starting_room_paintings # Early Color Hallways painting is a hardcoded special case paintings: - arrows_painting - pos: [905, 841] room: Hedge Maze door: Painting Shortcut paintings: - garden_painting_tower2 tags: - garden_starting - pos: [1066, 841] room: Courtyard door: Painting Shortcut paintings: - flower_painting_8 tags: - flower_starting - pos: [905, 895] room: The Wondrous (Doorknob) door: Painting Shortcut paintings: - symmetry_painting_a_starter tags: - symmetry_starting - pos: [1066, 868] room: Outside The Bold door: Painting Shortcut paintings: - pencil_painting6 tags: - pencil_starting - pos: [1066, 895] room: Outside The Undeterred door: Painting Shortcut paintings: - blueman_painting_3 tags: - blueman_starting - pos: [905, 868] room: Outside The Agreeable door: Painting Shortcut paintings: - eyes_yellow_painting2 tags: - street_starting - pos: [1211, 879] room: Hidden Room door: Dead End Door - pos: [1291, 906] room: Hidden Room door: Knight Night Entrance - pos: [1103, 980] room: Hidden Room door: Seeker Entrance - pos: [1173, 980] room: Hidden Room door: Rhyme Room Entrance - pos: [1116, 939] paintings: - owl_painting tags: - owl_hidden - pos: [986, 793] room: Second Room door: Exit Door - pos: [798, 584] room: Hub Room door: Crossroads Entrance - pos: [932, 665] room: Hub Room door: Tenacious Entrance - pos: [1361, 578] room: Hub Room door: Shortcut to Hedge Maze - pos: [1312, 841] room: Hub Room door: Near RAT Door - pos: [1371, 729] room: Hub Room door: Traveled Entrance - pos: [1313, 686] paintings: - maze_painting tags: - green_owl - green_numbers - pos: [1172, 760] sunwarp: dots: 1 type: enter - pos: [1302, 638] room: Outside The Undeterred door: Fours - pos: [1243, 819] room: Outside The Undeterred door: Fours - pos: [1276, 819] room: Outside The Undeterred door: Eights - pos: [1263, 867] paintings: - smile_painting_6 tags: - smiley_deadend - pos: [1012, 1086] sunwarp: dots: 6 type: final - pos: [938, 1002] room: Pilgrim Antechamber door: Sun Painting special: sun_painting - pos: [1053, 1090] invisible: true special: sun_painting_exit - pos: [1077, 1061] room: Pilgrim Room door: Shortcut to The Seeker - pos: [713, 359] room: Number Hunt door: Eights - pos: [932, 348] room: Crossroads door: Hollow Hallway - pos: [798, 290] room: Crossroads door: Tower Entrance - pos: [932, 477] room: Crossroads door: Tenacious Entrance - pos: [638, 477] room: Crossroads door: Discerning Entrance - pos: [905, 290] room: Crossroads door: Tower Back Entrance - pos: [894, 423] room: Crossroads door: Words Sword Door - pos: [632, 643] room: Crossroads door: Eye Wall - pos: [638, 520] room: Crossroads door: Roof Access - pos: [756, 400] paintings: - smile_painting_4 tags: - smiley_crossroads - pos: [878, 509] sunwarp: dots: 1 type: exit - pos: [1056, 344] room: Lost Area door: Exit - pos: [954, 290] room: Lost Area door: Exit - pos: [986, 290] room: Number Hunt door: Eights - pos: [954, 247] room: Amen Name Area door: Exit - pos: [954, 222] paintings: - west_afar - pos: [986, 697] room: The Tenacious door: Shortcut to Hub Room - pos: [1173, 665] room: Near Far Area door: Door - pos: [1173, 622] room: Warts Straw Area door: Door - pos: [1173, 579] room: Leaf Feel Area door: Door - pos: [1173, 333] room: Outside The Agreeable door: Purple Barrier - pos: [1088, 289] room: Outside The Undeterred door: Fives - pos: [1088, 418] room: Outside The Undeterred door: Fives - pos: [1039, 477] room: Outside The Agreeable door: Tenacious Entrance - pos: [1147, 525] room: Outside The Agreeable door: Black Door - pos: [1216, 525] room: Outside The Agreeable door: Agreeable Entrance - pos: [1138, 287] paintings: - eyes_yellow_painting tags: - street_starting - pos: [1088, 385] sunwarp: dots: 6 type: enter - pos: [1195, 450] room: Compass Room door: Lookout Entrance - pos: [1214, 457] paintings: - pencil_painting7 tags: - pencil_compass - pos: [1196, 417] invisible: true tags: - agreeable_to_lookout - pos: [1657, 1392] room: Room Room door: Exc
#ifndef VERSION_H_C757E53C
#define VERSION_H_C757E53C

#include <sstream>
#include <regex>

struct Version {
  int major = 0;
  int minor = 0;
  int revision = 0;

  constexpr Version(int major_arg, int minor_arg, int rev_arg)
      : major(major_arg), minor(minor_arg), revision(rev_arg) {}

  Version(const std::string& ver_str) {
    const std::regex version_regex("v([0-9]*)\.([0-9]*)\.([0-9]*)");
    std::smatch version_match;

    if (std::regex_match(ver_str, version_match, version_regex)) {
      major = std::atoi(version_match[1].str().c_str());
      minor = std::atoi(version_match[2].str().c_str());
      revision = std::atoi(version_match[3].str().c_str());
    }
  }

  std::string ToString() const {
    std::ostringstream output;
    output << "v" << major << "." << minor << "." << revision;
    return output.str();
  }

  bool operator<(const Version& rhs) const {
    return (major < rhs.major) ||
           (major == rhs.major &&
            (minor < rhs.minor ||
             (minor == rhs.minor && revision < rhs.revision)));
  }
};

constexpr const Version kTrackerVersion = Version(0, 9, 0);

#endif /* end of include guard: VERSION_H_C757E53C */
- smiley_crossroads - smiley_deadend - smiley_hotcrusts - smiley_numbers - smiley_directional - smiley_initiated - smiley_gallery - smiley_theysee - pos: [1656, 139] room: The Artistic (Smiley) door: Door to Panda - pos: [1711, 140] tags: - undeterred_artistic - pos: [1653, 169] paintings: - panda_painting_3 tags: - panda_tower6 - panda_hallway - pos: [1708, 171] room: The Artistic (Panda) door: Door to Lattice - pos: [1761, 169] paintings: - boxes_painting2 tags: - lattice_directional - pos: [1762, 139] room: The Artistic (Lattice) door: Door to Apple - pos: [1761, 101] paintings: - cherry_painting3 tags: - apple_tower6 - apple_directional - pos: [1708, 107] room: The Artistic (Apple) door: Door to Smiley - pos: [370, 681] room: Number Hunt door: Eights - pos: [411, 685] paintings: - eye_painting_2 - smile_painting_2 tags: - smiley_theysee - pos: [310, 750] room: The Eyes They See door: Exit - pos: [334, 798] paintings: - arrows_painting_5 - pos: [370, 792] room: Outside The Wondrous door: Wondrous Entrance - pos: [367, 752] paintings: - symmetry_painting_a_1 - symmetry_painting_b_1 - symmetry_painting_a_3 - symmetry_painting_a_5 - symmetry_painting_b_4 - symmetry_painting_a_2 - symmetry_painting_b_2 - symmetry_painting_a_6 - symmetry_painting_b_6 tags: - symmetry_starting - pos: [407, 755] room: The Wondrous door: Exit paintings: - arrows_painting_9 - pos: [449, 755] paintings: - flower_painting_6 tags: - flower_arrow - pos: [1101, 222] paintings: - panda_painting tags: - panda_hallway - pos: [1152, 209] room: Hallway Room (1) door: Exit - pos: [1189, 170] room: Hallway Room (2) door: Exit - pos: [1238, 124] room: Hallway Room (3) door: Exit - pos: [1313, 108] room: Hallway Room (4) door: Exit - pos: [1528, 108] room: Hallway Room (4) door: Exit - pos: [1415, 140] room: Number Hunt door: Nines - pos: [1458, 133] paintings: - south_afar - pos: [826, 1452] room: Outside The Wanderer door: Wanderer Entrance - pos: [763, 1465] room: Outside The Wanderer door: Tower Entrance - pos: [1655, 1151] room: Number Hunt door: Eights - pos: [1623, 1044] room: Art Gallery door: Second Floor - pos: [1623, 1019] room: Art Gallery door: Third Floor - pos: [1623, 991] room: Art Gallery door: Fourth Floor - pos: [1623, 964] room: Art Gallery door: Fifth Floor - pos: [1511, 1119] room: Art Gallery door: Exit - pos: [1654, 1116] paintings: - smile_painting_3 - flower_painting_2 - scenery_painting_0a - map_painting - fruitbowl_painting4 tags: - smiley_gallery - pos: [1120, 1286] room: Rhyme Room (Smiley) door: Door to Target - pos: [1120, 1315] tags: - rhyme_smiley_target - pos: [792, 1137] tags: - rhyme_smiley_target - pos: [895, 1217] room: Number Hunt door: Nines - pos: [938, 1296] room: Rhyme Room (Cross) door: Exit - pos: [1120, 1195] room: Rhyme Room (Circle) door: Door to Smiley - pos: [1118, 1137] paintings: - arrows_painting_3 - pos: [1050, 1142] room: Rhyme Room (Looped Square) door: Door to Circle - pos: [987, 1194] room: Rhyme Room (Looped Square) door: Door to Cross - pos: [922, 1142] room: Rhyme Room (Looped Square) door: Door to Target - pos: [852, 1200] room: Rhyme Room (Target) door: Door to Cross - pos: [850, 1138] paintings: - arrows_painting_4 - pos: [1652, 1393] room: Room Room door: Excavation - pos: [1592, 1442] room: Room Room door: Cellar Exit - pos: [1570, 938] room: Outside The Wise door: Wise Entrance - pos: [1653, 935] paintings: - clock_painting_3 - pos: [369, 605] room: Outside The Scientific door: Scientific Entrance - pos: [294, 602] paintings: - hi_solved_painting4 tags: - hi_scientific - pos: [814, 1001] room: Challenge Room door: Welcome Door