annotate tests/tools/tileset/main.cpp @ 182:3107ce017c3a

Misc: switch back to SDL Qt Quick and QML was an exciting experiment but it's definitely not enough flexible and easy to use for game development. Using SDL2 will let us focusing on our own drawing functions without any kind of overhead. While here, start massive cleanup.
author David Demelier <markand@malikania.fr>
date Fri, 19 Oct 2018 20:18:19 +0200
parents fbfc2555bda5
children eaf3cea01010
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test tileset
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
158
4b292c20124c Misc: update copyrights
David Demelier <markand@malikania.fr>
parents: 110
diff changeset
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <vector>
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <string>
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #define BOOST_TEST_MODULE "mlk-tileset"
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <boost/test/unit_test.hpp>
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <malikania/locator.hpp>
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #include <malikania/loader.hpp>
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include <malikania/tileset.hpp>
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 class test_tileset {
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 protected:
181
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
31 mlk::directory_locator locator_{CMAKE_CURRENT_BINARY_DIR};
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
32 mlk::loader loader_{locator_};
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 };
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 BOOST_FIXTURE_TEST_SUITE(test_tileset_suite, test_tileset)
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 BOOST_AUTO_TEST_CASE(tileset)
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 {
181
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
39 const std::vector<std::string> list{
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
40 "tileset.json",
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
41 "tileset_embedded.json",
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
42 "tileset_external.json"
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
43 };
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
181
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
45 for (const auto& t : list) {
182
3107ce017c3a Misc: switch back to SDL
David Demelier <markand@malikania.fr>
parents: 181
diff changeset
46 const auto tileset = loader_.load_tileset(t);
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
181
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
48 BOOST_REQUIRE_EQUAL("worldmapchip5fo.png", tileset.image);
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
49 BOOST_REQUIRE_EQUAL(32U, tileset.cell.width);
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
50 BOOST_REQUIRE_EQUAL(32U, tileset.cell.height);
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
51 BOOST_REQUIRE_EQUAL(3U, tileset.tile_properties.size());
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
181
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
53 // Index 8.
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
54 BOOST_REQUIRE_EQUAL("value", tileset.tile_properties[8]["test"]);
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
181
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
56 // TODO: postpone collisions once made.
fbfc2555bda5 Common: cleanup
David Demelier <markand@malikania.fr>
parents: 170
diff changeset
57 }
99
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 }
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
0addfab87b17 Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 BOOST_AUTO_TEST_SUITE_END()