Mercurial > malikania
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 |
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 | 31 mlk::directory_locator locator_{CMAKE_CURRENT_BINARY_DIR}; |
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 | 39 const std::vector<std::string> list{ |
40 "tileset.json", | |
41 "tileset_embedded.json", | |
42 "tileset_external.json" | |
43 }; | |
99
0addfab87b17
Common: implement basic tilesets, closes #664
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
181 | 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 | 48 BOOST_REQUIRE_EQUAL("worldmapchip5fo.png", tileset.image); |
49 BOOST_REQUIRE_EQUAL(32U, tileset.cell.width); | |
50 BOOST_REQUIRE_EQUAL(32U, tileset.cell.height); | |
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 | 53 // Index 8. |
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 | 56 // TODO: postpone collisions once made. |
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() |