From f9b14ba282be4ea3ddabf557cc58d94778c2ffd2 Mon Sep 17 00:00:00 2001 From: Frank Zago Date: Fri, 2 Sep 2011 02:46:18 +0000 Subject: [PATCH] Created puzzle_map.json from puzzle_map.txt. --- config/puzzle_map.json | 472 +++++++++++++++++++++++++++++++++++++++++ config/puzzle_map.txt | 442 -------------------------------------- lib/CHeroHandler.cpp | 59 +++--- 3 files changed, 500 insertions(+), 473 deletions(-) create mode 100644 config/puzzle_map.json delete mode 100644 config/puzzle_map.txt diff --git a/config/puzzle_map.json b/config/puzzle_map.json new file mode 100644 index 000000000..68b3be5fd --- /dev/null +++ b/config/puzzle_map.json @@ -0,0 +1,472 @@ +{ + // Description of puzzle's pieces positions and order of discovering. + "puzzles": [ + [ + //Castle + { "x": 7, "y": 8, "order": 39 }, + { "x": 7, "y": 30, "order": 41 }, + { "x": 7, "y": 102, "order": 1 }, + { "x": 7, "y": 156, "order": 23 }, + { "x": 7, "y": 202, "order": 6 }, + { "x": 7, "y": 320, "order": 13 }, + { "x": 16, "y": 8, "order": 39 }, + { "x": 22, "y": 406, "order": 2 }, + { "x": 70, "y": 301, "order": 22 }, + { "x": 72, "y": 194, "order": 11 }, + { "x": 101, "y": 332, "order": 8 }, + { "x": 106, "y": 8, "order": 9 }, + { "x": 106, "y": 31, "order": 29 }, + { "x": 114, "y": 60, "order": 7 }, + { "x": 126, "y": 329, "order": 17 }, + { "x": 128, "y": 191, "order": 21 }, + { "x": 152, "y": 347, "order": 27 }, + { "x": 154, "y": 239, "order": 31 }, + { "x": 157, "y": 429, "order": 34 }, + { "x": 166, "y": 470, "order": 4 }, + { "x": 185, "y": 127, "order": 30 }, + { "x": 212, "y": 335, "order": 36 }, + { "x": 214, "y": 191, "order": 48 }, + { "x": 217, "y": 226, "order": 43 }, + { "x": 235, "y": 147, "order": 35 }, + { "x": 245, "y": 77, "order": 16 }, + { "x": 266, "y": 384, "order": 42 }, + { "x": 288, "y": 288, "order": 45 }, + { "x": 298, "y": 8, "order": 26 }, + { "x": 321, "y": 177, "order": 46 }, + { "x": 346, "y": 67, "order": 38 }, + { "x": 354, "y": 459, "order": 20 }, + { "x": 355, "y": 397, "order": 25 }, + { "x": 375, "y": 162, "order": 28 }, + { "x": 382, "y": 255, "order": 32 }, + { "x": 408, "y": 32, "order": 37 }, + { "x": 408, "y": 111, "order": 14 }, + { "x": 421, "y": 147, "order": 19 }, + { "x": 422, "y": 466, "order": 12 }, + { "x": 426, "y": 8, "order": 15 }, + { "x": 436, "y": 238, "order": 24 }, + { "x": 458, "y": 336, "order": 44 }, + { "x": 486, "y": 8, "order": 40 }, + { "x": 487, "y": 144, "order": 33 }, + { "x": 517, "y": 145, "order": 18 }, + { "x": 520, "y": 68, "order": 5 }, + { "x": 524, "y": 234, "order": 10 }, + { "x": 525, "y": 327, "order": 3 } + ], + + [ + //Rampart + { "x": 7, "y": 8, "order": 2 }, + { "x": 7, "y": 101, "order": 13 }, + { "x": 7, "y": 195, "order": 20 }, + { "x": 7, "y": 310, "order": 6 }, + { "x": 7, "y": 378, "order": 22 }, + { "x": 7, "y": 449, "order": 21 }, + { "x": 61, "y": 8, "order": 19 }, + { "x": 97, "y": 42, "order": 8 }, + { "x": 98, "y": 201, "order": 24 }, + { "x": 108, "y": 308, "order": 36 }, + { "x": 115, "y": 461, "order": 1 }, + { "x": 129, "y": 366, "order": 7 }, + { "x": 134, "y": 8, "order": 4 }, + { "x": 157, "y": 188, "order": 25 }, + { "x": 160, "y": 309, "order": 39 }, + { "x": 162, "y": 441, "order": 11 }, + { "x": 164, "y": 126, "order": 28 }, + { "x": 174, "y": 390, "order": 33 }, + { "x": 178, "y": 188, "order": 46 }, + { "x": 187, "y": 258, "order": 41 }, + { "x": 190, "y": 24, "order": 38 }, + { "x": 215, "y": 272, "order": 45 }, + { "x": 255, "y": 443, "order": 9 }, + { "x": 265, "y": 323, "order": 40 }, + { "x": 277, "y": 45, "order": 47 }, + { "x": 278, "y": 383, "order": 27 }, + { "x": 292, "y": 196, "order": 43 }, + { "x": 294, "y": 266, "order": 48 }, + { "x": 310, "y": 8, "order": 17 }, + { "x": 330, "y": 493, "order": 16 }, + { "x": 339, "y": 8, "order": 12 }, + { "x": 339, "y": 167, "order": 29 }, + { "x": 344, "y": 108, "order": 35 }, + { "x": 361, "y": 239, "order": 31 }, + { "x": 363, "y": 385, "order": 44 }, + { "x": 398, "y": 310, "order": 42 }, + { "x": 400, "y": 130, "order": 23 }, + { "x": 404, "y": 436, "order": 32 }, + { "x": 421, "y": 127, "order": 26 }, + { "x": 429, "y": 8, "order": 37 }, + { "x": 430, "y": 106, "order": 30 }, + { "x": 462, "y": 393, "order": 14 }, + { "x": 469, "y": 270, "order": 10 }, + { "x": 486, "y": 8, "order": 3 }, + { "x": 499, "y": 481, "order": 15 }, + { "x": 511, "y": 255, "order": 34 }, + { "x": 516, "y": 48, "order": 18 }, + { "x": 525, "y": 169, "order": 5 } + ], + + [ + //Tower + { "x": 7, "y": 8, "order": 1 }, + { "x": 7, "y": 52, "order": 13 }, + { "x": 7, "y": 243, "order": 8 }, + { "x": 7, "y": 486, "order": 22 }, + { "x": 26, "y": 391, "order": 7 }, + { "x": 27, "y": 31, "order": 23 }, + { "x": 27, "y": 89, "order": 31 }, + { "x": 28, "y": 303, "order": 20 }, + { "x": 28, "y": 336, "order": 25 }, + { "x": 37, "y": 234, "order": 33 }, + { "x": 59, "y": 77, "order": 6 }, + { "x": 76, "y": 462, "order": 15 }, + { "x": 91, "y": 245, "order": 34 }, + { "x": 114, "y": 31, "order": 19 }, + { "x": 118, "y": 323, "order": 42 }, + { "x": 132, "y": 87, "order": 36 }, + { "x": 163, "y": 370, "order": 40 }, + { "x": 171, "y": 255, "order": 21 }, + { "x": 192, "y": 8, "order": 28 }, + { "x": 212, "y": 483, "order": 38 }, + { "x": 228, "y": 95, "order": 44 }, + { "x": 231, "y": 205, "order": 46 }, + { "x": 293, "y": 380, "order": 10 }, + { "x": 297, "y": 190, "order": 43 }, + { "x": 297, "y": 260, "order": 48 }, + { "x": 298, "y": 8, "order": 17 }, + { "x": 298, "y": 89, "order": 35 }, + { "x": 312, "y": 462, "order": 29 }, + { "x": 320, "y": 261, "order": 45 }, + { "x": 340, "y": 17, "order": 37 }, + { "x": 350, "y": 121, "order": 12 }, + { "x": 350, "y": 174, "order": 41 }, + { "x": 355, "y": 371, "order": 27 }, + { "x": 357, "y": 469, "order": 3 }, + { "x": 376, "y": 289, "order": 11 }, + { "x": 388, "y": 8, "order": 4 }, + { "x": 407, "y": 45, "order": 47 }, + { "x": 421, "y": 284, "order": 30 }, + { "x": 436, "y": 159, "order": 39 }, + { "x": 445, "y": 8, "order": 18 }, + { "x": 445, "y": 211, "order": 26 }, + { "x": 463, "y": 422, "order": 24 }, + { "x": 477, "y": 29, "order": 2 }, + { "x": 497, "y": 153, "order": 5 }, + { "x": 499, "y": 108, "order": 14 }, + { "x": 503, "y": 281, "order": 16 }, + { "x": 537, "y": 418, "order": 9 }, + { "x": 556, "y": 215, "order": 32 } + ], + + [ + //Inferno + { "x": 7, "y": 8, "order": 30 }, + { "x": 7, "y": 16, "order": 2 }, + { "x": 7, "y": 95, "order": 12 }, + { "x": 7, "y": 271, "order": 27 }, + { "x": 7, "y": 308, "order": 8 }, + { "x": 7, "y": 464, "order": 1 }, + { "x": 16, "y": 164, "order": 26 }, + { "x": 41, "y": 378, "order": 39 }, + { "x": 50, "y": 471, "order": 13 }, + { "x": 51, "y": 101, "order": 17 }, + { "x": 80, "y": 260, "order": 35 }, + { "x": 81, "y": 48, "order": 4 }, + { "x": 91, "y": 143, "order": 47 }, + { "x": 115, "y": 8, "order": 25 }, + { "x": 141, "y": 360, "order": 28 }, + { "x": 153, "y": 269, "order": 41 }, + { "x": 164, "y": 55, "order": 44 }, + { "x": 173, "y": 101, "order": 36 }, + { "x": 173, "y": 492, "order": 6 }, + { "x": 187, "y": 160, "order": 48 }, + { "x": 194, "y": 388, "order": 19 }, + { "x": 200, "y": 373, "order": 20 }, + { "x": 204, "y": 282, "order": 45 }, + { "x": 239, "y": 469, "order": 11 }, + { "x": 240, "y": 8, "order": 32 }, + { "x": 271, "y": 163, "order": 43 }, + { "x": 276, "y": 255, "order": 46 }, + { "x": 296, "y": 428, "order": 3 }, + { "x": 297, "y": 281, "order": 16 }, + { "x": 306, "y": 8, "order": 10 }, + { "x": 317, "y": 17, "order": 15 }, + { "x": 327, "y": 84, "order": 29 }, + { "x": 348, "y": 142, "order": 40 }, + { "x": 348, "y": 342, "order": 21 }, + { "x": 370, "y": 405, "order": 22 }, + { "x": 401, "y": 103, "order": 18 }, + { "x": 407, "y": 40, "order": 31 }, + { "x": 421, "y": 508, "order": 7 }, + { "x": 453, "y": 215, "order": 33 }, + { "x": 455, "y": 377, "order": 34 }, + { "x": 460, "y": 170, "order": 38 }, + { "x": 475, "y": 319, "order": 42 }, + { "x": 488, "y": 412, "order": 37 }, + { "x": 504, "y": 8, "order": 24 }, + { "x": 515, "y": 67, "order": 5 }, + { "x": 517, "y": 211, "order": 14 }, + { "x": 532, "y": 305, "order": 23 }, + { "x": 556, "y": 335, "order": 9 } + ], + + [ + //Necropolis + { "x": 7, "y": 8, "order": 22 }, + { "x": 7, "y": 188, "order": 1 }, + { "x": 7, "y": 329, "order": 20 }, + { "x": 7, "y": 403, "order": 24 }, + { "x": 8, "y": 8, "order": 47 }, + { "x": 14, "y": 138, "order": 30 }, + { "x": 15, "y": 8, "order": 9 }, + { "x": 34, "y": 374, "order": 31 }, + { "x": 55, "y": 82, "order": 25 }, + { "x": 55, "y": 150, "order": 38 }, + { "x": 57, "y": 281, "order": 8 }, + { "x": 94, "y": 188, "order": 36 }, + { "x": 108, "y": 344, "order": 6 }, + { "x": 119, "y": 424, "order": 13 }, + { "x": 124, "y": 256, "order": 37 }, + { "x": 131, "y": 8, "order": 7 }, + { "x": 139, "y": 92, "order": 11 }, + { "x": 145, "y": 371, "order": 29 }, + { "x": 148, "y": 42, "order": 21 }, + { "x": 175, "y": 200, "order": 44 }, + { "x": 200, "y": 291, "order": 45 }, + { "x": 201, "y": 66, "order": 42 }, + { "x": 210, "y": 482, "order": 18 }, + { "x": 247, "y": 98, "order": 28 }, + { "x": 250, "y": 227, "order": 48 }, + { "x": 262, "y": 8, "order": 15 }, + { "x": 293, "y": 373, "order": 32 }, + { "x": 303, "y": 286, "order": 46 }, + { "x": 318, "y": 173, "order": 43 }, + { "x": 345, "y": 444, "order": 2 }, + { "x": 356, "y": 8, "order": 5 }, + { "x": 357, "y": 386, "order": 17 }, + { "x": 362, "y": 38, "order": 40 }, + { "x": 382, "y": 8, "order": 19 }, + { "x": 382, "y": 119, "order": 35 }, + { "x": 421, "y": 164, "order": 27 }, + { "x": 422, "y": 249, "order": 4 }, + { "x": 428, "y": 52, "order": 14 }, + { "x": 429, "y": 101, "order": 10 }, + { "x": 443, "y": 132, "order": 41 }, + { "x": 452, "y": 239, "order": 34 }, + { "x": 465, "y": 441, "order": 23 }, + { "x": 469, "y": 300, "order": 39 }, + { "x": 476, "y": 20, "order": 3 }, + { "x": 537, "y": 249, "order": 33 }, + { "x": 547, "y": 430, "order": 12 }, + { "x": 559, "y": 140, "order": 26 }, + { "x": 558, "y": 8, "order": 16 } + ], + + [ + //Dungeon + { "x": 7, "y": 8, "order": 31 }, + { "x": 7, "y": 125, "order": 1 }, + { "x": 7, "y": 353, "order": 33 }, + { "x": 7, "y": 394, "order": 6 }, + { "x": 30, "y": 101, "order": 36 }, + { "x": 33, "y": 219, "order": 16 }, + { "x": 57, "y": 171, "order": 13 }, + { "x": 62, "y": 8, "order": 47 }, + { "x": 63, "y": 90, "order": 41 }, + { "x": 83, "y": 471, "order": 10 }, + { "x": 94, "y": 117, "order": 21 }, + { "x": 99, "y": 8, "order": 5 }, + { "x": 113, "y": 258, "order": 32 }, + { "x": 156, "y": 146, "order": 28 }, + { "x": 165, "y": 288, "order": 42 }, + { "x": 172, "y": 388, "order": 44 }, + { "x": 177, "y": 36, "order": 39 }, + { "x": 194, "y": 235, "order": 46 }, + { "x": 204, "y": 502, "order": 3 }, + { "x": 236, "y": 320, "order": 23 }, + { "x": 238, "y": 8, "order": 20 }, + { "x": 245, "y": 75, "order": 25 }, + { "x": 247, "y": 396, "order": 29 }, + { "x": 247, "y": 459, "order": 14 }, + { "x": 253, "y": 152, "order": 48 }, + { "x": 301, "y": 233, "order": 43 }, + { "x": 323, "y": 8, "order": 12 }, + { "x": 323, "y": 178, "order": 45 }, + { "x": 328, "y": 342, "order": 30 }, + { "x": 329, "y": 428, "order": 19 }, + { "x": 339, "y": 8, "order": 26 }, + { "x": 357, "y": 141, "order": 27 }, + { "x": 374, "y": 8, "order": 15 }, + { "x": 374, "y": 236, "order": 34 }, + { "x": 392, "y": 439, "order": 35 }, + { "x": 400, "y": 291, "order": 40 }, + { "x": 401, "y": 103, "order": 18 }, + { "x": 422, "y": 381, "order": 37 }, + { "x": 436, "y": 8, "order": 17 }, + { "x": 438, "y": 336, "order": 24 }, + { "x": 449, "y": 131, "order": 9 }, + { "x": 453, "y": 161, "order": 11 }, + { "x": 471, "y": 267, "order": 38 }, + { "x": 477, "y": 64, "order": 22 }, + { "x": 480, "y": 456, "order": 8 }, + { "x": 485, "y": 8, "order": 2 }, + { "x": 536, "y": 197, "order": 4 }, + { "x": 541, "y": 22, "order": 7 } + ], + + [ + //Stronghold + { "x": 7, "y": 8, "order": 6 }, + { "x": 7, "y": 229, "order": 14 }, + { "x": 7, "y": 405, "order": 15 }, + { "x": 7, "y": 465, "order": 10 }, + { "x": 12, "y": 8, "order": 9 }, + { "x": 32, "y": 245, "order": 21 }, + { "x": 32, "y": 277, "order": 33 }, + { "x": 36, "y": 337, "order": 19 }, + { "x": 39, "y": 15, "order": 36 }, + { "x": 47, "y": 115, "order": 23 }, + { "x": 49, "y": 178, "order": 25 }, + { "x": 70, "y": 8, "order": 1 }, + { "x": 101, "y": 35, "order": 41 }, + { "x": 111, "y": 311, "order": 44 }, + { "x": 123, "y": 156, "order": 45 }, + { "x": 138, "y": 423, "order": 32 }, + { "x": 140, "y": 224, "order": 43 }, + { "x": 144, "y": 136, "order": 11 }, + { "x": 149, "y": 452, "order": 18 }, + { "x": 158, "y": 475, "order": 5 }, + { "x": 191, "y": 68, "order": 7 }, + { "x": 202, "y": 12, "order": 39 }, + { "x": 218, "y": 349, "order": 34 }, + { "x": 219, "y": 285, "order": 42 }, + { "x": 222, "y": 96, "order": 28 }, + { "x": 262, "y": 8, "order": 8 }, + { "x": 279, "y": 166, "order": 48 }, + { "x": 279, "y": 425, "order": 22 }, + { "x": 303, "y": 314, "order": 27 }, + { "x": 320, "y": 109, "order": 16 }, + { "x": 326, "y": 146, "order": 47 }, + { "x": 333, "y": 160, "order": 46 }, + { "x": 362, "y": 26, "order": 4 }, + { "x": 365, "y": 441, "order": 17 }, + { "x": 380, "y": 297, "order": 38 }, + { "x": 392, "y": 242, "order": 29 }, + { "x": 427, "y": 275, "order": 40 }, + { "x": 445, "y": 85, "order": 2 }, + { "x": 446, "y": 424, "order": 30 }, + { "x": 459, "y": 347, "order": 37 }, + { "x": 463, "y": 53, "order": 24 }, + { "x": 484, "y": 210, "order": 20 }, + { "x": 488, "y": 8, "order": 26 }, + { "x": 489, "y": 303, "order": 35 }, + { "x": 529, "y": 8, "order": 31 }, + { "x": 529, "y": 421, "order": 3 }, + { "x": 558, "y": 87, "order": 13 }, + { "x": 563, "y": 261, "order": 12 } + ], + + [ + //Fortress + { "x": 7, "y": 8, "order": 36 }, + { "x": 7, "y": 152, "order": 25 }, + { "x": 7, "y": 306, "order": 34 }, + { "x": 7, "y": 388, "order": 23 }, + { "x": 7, "y": 434, "order": 15 }, + { "x": 23, "y": 417, "order": 37 }, + { "x": 32, "y": 232, "order": 38 }, + { "x": 42, "y": 137, "order": 39 }, + { "x": 47, "y": 440, "order": 8 }, + { "x": 56, "y": 19, "order": 47 }, + { "x": 71, "y": 8, "order": 1 }, + { "x": 87, "y": 219, "order": 30 }, + { "x": 90, "y": 26, "order": 41 }, + { "x": 104, "y": 397, "order": 33 }, + { "x": 116, "y": 345, "order": 40 }, + { "x": 134, "y": 215, "order": 11 }, + { "x": 175, "y": 168, "order": 19 }, + { "x": 191, "y": 428, "order": 13 }, + { "x": 200, "y": 326, "order": 24 }, + { "x": 216, "y": 98, "order": 18 }, + { "x": 221, "y": 398, "order": 20 }, + { "x": 225, "y": 235, "order": 46 }, + { "x": 239, "y": 8, "order": 9 }, + { "x": 245, "y": 40, "order": 7 }, + { "x": 248, "y": 208, "order": 48 }, + { "x": 261, "y": 439, "order": 5 }, + { "x": 262, "y": 134, "order": 26 }, + { "x": 297, "y": 352, "order": 22 }, + { "x": 309, "y": 99, "order": 16 }, + { "x": 320, "y": 262, "order": 43 }, + { "x": 323, "y": 404, "order": 10 }, + { "x": 326, "y": 200, "order": 45 }, + { "x": 331, "y": 20, "order": 17 }, + { "x": 345, "y": 178, "order": 21 }, + { "x": 353, "y": 8, "order": 3 }, + { "x": 358, "y": 290, "order": 42 }, + { "x": 381, "y": 399, "order": 14 }, + { "x": 400, "y": 65, "order": 12 }, + { "x": 428, "y": 160, "order": 35 }, + { "x": 448, "y": 293, "order": 29 }, + { "x": 451, "y": 94, "order": 27 }, + { "x": 453, "y": 424, "order": 2 }, + { "x": 462, "y": 397, "order": 32 }, + { "x": 465, "y": 8, "order": 4 }, + { "x": 486, "y": 163, "order": 44 }, + { "x": 492, "y": 184, "order": 31 }, + { "x": 517, "y": 304, "order": 6 }, + { "x": 549, "y": 8, "order": 28 } + ], + + [ + //Conflux + { "x": 7, "y": 8, "order": 1 }, + { "x": 7, "y": 54, "order": 6 }, + { "x": 7, "y": 227, "order": 16 }, + { "x": 7, "y": 426, "order": 9 }, + { "x": 15, "y": 48, "order": 22 }, + { "x": 45, "y": 375, "order": 32 }, + { "x": 48, "y": 249, "order": 28 }, + { "x": 86, "y": 500, "order": 15 }, + { "x": 93, "y": 55, "order": 37 }, + { "x": 99, "y": 245, "order": 7 }, + { "x": 101, "y": 354, "order": 27 }, + { "x": 104, "y": 175, "order": 35 }, + { "x": 107, "y": 14, "order": 21 }, + { "x": 124, "y": 296, "order": 38 }, + { "x": 134, "y": 8, "order": 4 }, + { "x": 181, "y": 466, "order": 26 }, + { "x": 182, "y": 200, "order": 40 }, + { "x": 189, "y": 381, "order": 33 }, + { "x": 192, "y": 40, "order": 8 }, + { "x": 192, "y": 364, "order": 11 }, + { "x": 201, "y": 124, "order": 48 }, + { "x": 203, "y": 330, "order": 42 }, + { "x": 228, "y": 293, "order": 45 }, + { "x": 235, "y": 39, "order": 25 }, + { "x": 242, "y": 335, "order": 44 }, + { "x": 275, "y": 488, "order": 5 }, + { "x": 278, "y": 202, "order": 46 }, + { "x": 290, "y": 80, "order": 13 }, + { "x": 291, "y": 115, "order": 20 }, + { "x": 308, "y": 225, "order": 43 }, + { "x": 310, "y": 158, "order": 39 }, + { "x": 312, "y": 24, "order": 12 }, + { "x": 317, "y": 8, "order": 2 }, + { "x": 323, "y": 443, "order": 10 }, + { "x": 327, "y": 253, "order": 41 }, + { "x": 330, "y": 36, "order": 36 }, + { "x": 349, "y": 330, "order": 34 }, + { "x": 349, "y": 426, "order": 17 }, + { "x": 407, "y": 191, "order": 47 }, + { "x": 421, "y": 430, "order": 31 }, + { "x": 428, "y": 246, "order": 23 }, + { "x": 467, "y": 90, "order": 29 }, + { "x": 481, "y": 13, "order": 30 }, + { "x": 489, "y": 346, "order": 18 }, + { "x": 504, "y": 113, "order": 19 }, + { "x": 504, "y": 190, "order": 24 }, + { "x": 507, "y": 8, "order": 14 }, + { "x": 542, "y": 436, "order": 3 } + ] + ] +} diff --git a/config/puzzle_map.txt b/config/puzzle_map.txt deleted file mode 100644 index 70176be27..000000000 --- a/config/puzzle_map.txt +++ /dev/null @@ -1,442 +0,0 @@ -//description of puzzle's positions and order of discovering. x pos -> y pos -> when discovered -//Castle -7 8 39 -7 30 41 -7 102 1 -7 156 23 -7 202 6 -7 320 13 -16 8 39 -22 406 2 -70 301 22 -72 194 11 -101 332 8 -106 8 9 -106 31 29 -114 60 7 -126 329 17 -128 191 21 -152 347 27 -154 239 31 -157 429 34 -166 470 4 -185 127 30 -212 335 36 -214 191 48 -217 226 43 -235 147 35 -245 77 16 -266 384 42 -288 288 45 -298 8 26 -321 177 46 -346 67 38 -354 459 20 -355 397 25 -375 162 28 -382 255 32 -408 32 37 -408 111 14 -421 147 19 -422 466 12 -426 8 15 -436 238 24 -458 336 44 -486 8 40 -487 144 33 -517 145 18 -520 68 5 -524 234 10 -525 327 3 -//Rampart -7 8 2 -7 101 13 -7 195 20 -7 310 6 -7 378 22 -7 449 21 -61 8 19 -97 42 8 -98 201 24 -108 308 36 -115 461 1 -129 366 7 -134 8 4 -157 188 25 -160 309 39 -162 441 11 -164 126 28 -174 390 33 -178 188 46 -187 258 41 -190 24 38 -215 272 45 -255 443 9 -265 323 40 -277 45 47 -278 383 27 -292 196 43 -294 266 48 -310 8 17 -330 493 16 -339 8 12 -339 167 29 -344 108 35 -361 239 31 -363 385 44 -398 310 42 -400 130 23 -404 436 32 -421 127 26 -429 8 37 -430 106 30 -462 393 14 -469 270 10 -486 8 3 -499 481 15 -511 255 34 -516 48 18 -525 169 5 -//Tower -7 8 1 -7 52 13 -7 243 8 -7 486 22 -26 391 7 -27 31 23 -27 89 31 -28 303 20 -28 336 25 -37 234 33 -59 77 6 -76 462 15 -91 245 34 -114 31 19 -118 323 42 -132 87 36 -163 370 40 -171 255 21 -192 8 28 -212 483 38 -228 95 44 -231 205 46 -293 380 10 -297 190 43 -297 260 48 -298 8 17 -298 89 35 -312 462 29 -320 261 45 -340 17 37 -350 121 12 -350 174 41 -355 371 27 -357 469 3 -376 289 11 -388 8 4 -407 45 47 -421 284 30 -436 159 39 -445 8 18 -445 211 26 -463 422 24 -477 29 2 -497 153 5 -499 108 14 -503 281 16 -537 418 9 -556 215 32 -//Inferno -7 8 30 -7 16 2 -7 95 12 -7 271 27 -7 308 8 -7 464 1 -16 164 26 -41 378 39 -50 471 13 -51 101 17 -80 260 35 -81 48 4 -91 143 47 -115 8 25 -141 360 28 -153 269 41 -164 55 44 -173 101 36 -173 492 6 -187 160 48 -194 388 19 -200 373 20 -204 282 45 -239 469 11 -240 8 32 -271 163 43 -276 255 46 -296 428 3 -297 281 16 -306 8 10 -317 17 15 -327 84 29 -348 142 40 -348 342 21 -370 405 22 -401 103 18 -407 40 31 -421 508 7 -453 215 33 -455 377 34 -460 170 38 -475 319 42 -488 412 37 -504 8 24 -515 67 5 -517 211 14 -532 305 23 -556 335 9 -//Necropolis -7 8 22 -7 188 1 -7 329 20 -7 403 24 -8 8 47 -14 138 30 -15 8 9 -34 374 31 -55 82 25 -55 150 38 -57 281 8 -94 188 36 -108 344 6 -119 424 13 -124 256 37 -131 8 7 -139 92 11 -145 371 29 -148 42 21 -175 200 44 -200 291 45 -201 66 42 -210 482 18 -247 98 28 -250 227 48 -262 8 15 -293 373 32 -303 286 46 -318 173 43 -345 444 2 -356 8 5 -357 386 17 -362 38 40 -382 8 19 -382 119 35 -421 164 27 -422 249 4 -428 52 14 -429 101 10 -443 132 41 -452 239 34 -465 441 23 -469 300 39 -476 20 3 -537 249 33 -547 430 12 -559 140 26 -558 8 16 -//Dungeon -7 8 31 -7 125 1 -7 353 33 -7 394 6 -30 101 36 -33 219 16 -57 171 13 -62 8 47 -63 90 41 -83 471 10 -94 117 21 -99 8 5 -113 258 32 -156 146 28 -165 288 42 -172 388 44 -177 36 39 -194 235 46 -204 502 3 -236 320 23 -238 8 20 -245 75 25 -247 396 29 -247 459 14 -253 152 48 -301 233 43 -323 8 12 -323 178 45 -328 342 30 -329 428 19 -339 8 26 -357 141 27 -374 8 15 -374 236 34 -392 439 35 -400 291 40 -401 103 18 -422 381 37 -436 8 17 -438 336 24 -449 131 9 -453 161 11 -471 267 38 -477 64 22 -480 456 8 -485 8 2 -536 197 4 -541 22 7 -//Stronghold -7 8 6 -7 229 14 -7 405 15 -7 465 10 -12 8 9 -32 245 21 -32 277 33 -36 337 19 -39 15 36 -47 115 23 -49 178 25 -70 8 1 -101 35 41 -111 311 44 -123 156 45 -138 423 32 -140 224 43 -144 136 11 -149 452 18 -158 475 5 -191 68 7 -202 12 39 -218 349 34 -219 285 42 -222 96 28 -262 8 8 -279 166 48 -279 425 22 -303 314 27 -320 109 16 -326 146 47 -333 160 46 -362 26 4 -365 441 17 -380 297 38 -392 242 29 -427 275 40 -445 85 2 -446 424 30 -459 347 37 -463 53 24 -484 210 20 -488 8 26 -489 303 35 -529 8 31 -529 421 3 -558 87 13 -563 261 12 -//Fortress -7 8 36 -7 152 25 -7 306 34 -7 388 23 -7 434 15 -23 417 37 -32 232 38 -42 137 39 -47 440 8 -56 19 47 -71 8 1 -87 219 30 -90 26 41 -104 397 33 -116 345 40 -134 215 11 -175 168 19 -191 428 13 -200 326 24 -216 98 18 -221 398 20 -225 235 46 -239 8 9 -245 40 7 -248 208 48 -261 439 5 -262 134 26 -297 352 22 -309 99 16 -320 262 43 -323 404 10 -326 200 45 -331 20 17 -345 178 21 -353 8 3 -358 290 42 -381 399 14 -400 65 12 -428 160 35 -448 293 29 -451 94 27 -453 424 2 -462 397 32 -465 8 4 -486 163 44 -492 184 31 -517 304 6 -549 8 28 -//Conflux -7 8 1 -7 54 6 -7 227 16 -7 426 9 -15 48 22 -45 375 32 -48 249 28 -86 500 15 -93 55 37 -99 245 7 -101 354 27 -104 175 35 -107 14 21 -124 296 38 -134 8 4 -181 466 26 -182 200 40 -189 381 33 -192 40 8 -192 364 11 -201 124 48 -203 330 42 -228 293 45 -235 39 25 -242 335 44 -275 488 5 -278 202 46 -290 80 13 -291 115 20 -308 225 43 -310 158 39 -312 24 12 -317 8 2 -323 443 10 -327 253 41 -330 36 36 -349 330 34 -349 426 17 -407 191 47 -421 430 31 -428 246 23 -467 90 29 -481 13 30 -489 346 18 -504 113 19 -504 190 24 -507 8 14 -542 436 3 \ No newline at end of file diff --git a/lib/CHeroHandler.cpp b/lib/CHeroHandler.cpp index a5392c2f3..3a0aa645c 100644 --- a/lib/CHeroHandler.cpp +++ b/lib/CHeroHandler.cpp @@ -162,45 +162,42 @@ void CHeroHandler::loadObstacles() void CHeroHandler::loadPuzzleInfo() { - std::ifstream inp; - inp.open(DATA_DIR "/config/puzzle_map.txt", std::ios_base::in|std::ios_base::binary); - if(!inp.is_open()) - { - tlog1<<"missing file: config/puzzle_map.txt"<> dmp; + BOOST_FOREACH(const JsonNode &puzzle, config["puzzles"].Vector()) { - for(int g=0; g> spi.x; - inp >> spi.y; - inp >> spi.whenUncovered; - spi.number = g; + int idx = 0; + + BOOST_FOREACH(const JsonNode &piece, puzzle.Vector()) { + + SPuzzleInfo spi; + + spi.x = piece["x"].Float(); + spi.y = piece["y"].Float(); + spi.whenUncovered = piece["order"].Float(); + spi.number = idx; - //filename calculation - std::ostringstream suffix; - suffix << std::setfill('0') << std::setw(2); - suffix << g << ".BMP"; + // filename calculation + std::ostringstream suffix; + suffix << std::setfill('0') << std::setw(2); + suffix << idx << ".BMP"; - static const std::string factionToInfix[F_NUMBER] = {"CAS", "RAM", "TOW", "INF", "NEC", "DUN", "STR", "FOR", "ELE"}; - spi.filename = "PUZ" + factionToInfix[fct] + suffix.str(); + static const std::string factionToInfix[F_NUMBER] = {"CAS", "RAM", "TOW", "INF", "NEC", "DUN", "STR", "FOR", "ELE"}; + spi.filename = "PUZ" + factionToInfix[faction] + suffix.str(); - puzzleInfo[fct].push_back(spi); - } + puzzleInfo[faction].push_back(spi); + + idx ++; } - inp.close(); + + assert(idx == PUZZLES_PER_FACTION); + + faction ++; } + + assert(faction == F_NUMBER); } void CHeroHandler::loadHeroes()