From d259a59c06330eaa410bc083fb6a0ea064209f00 Mon Sep 17 00:00:00 2001 From: fallahn Date: Tue, 12 Sep 2023 13:15:32 +0100 Subject: [PATCH] update error reporting in SFML example --- SFMLExample/SFMLExample.vcxproj | 8 +++--- SFMLExample/assets/demo.tmx | 2 +- SFMLExample/src/SFMLOrthogonalLayer.hpp | 34 +++++++++++++++---------- tmxlite.sln | 5 ++-- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/SFMLExample/SFMLExample.vcxproj b/SFMLExample/SFMLExample.vcxproj index b68f419..7a5c32d 100644 --- a/SFMLExample/SFMLExample.vcxproj +++ b/SFMLExample/SFMLExample.vcxproj @@ -116,12 +116,12 @@ true _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - ../tmxlite/include;../sfml/include + ../tmxlite/include;../extlibs/sfml/include Console true - ../sfml/bin/Debug;../tmxlite/x64/bin/DebugStatic + ../extlibs/sfml/lib;../tmxlite/x64/bin/DebugStatic libtmxlite-s-d.lib;sfml-system-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;%(AdditionalDependencies) @@ -133,14 +133,14 @@ true _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true - ../tmxlite/include;../sfml/include + ../tmxlite/include;../extlibs/sfml/include Console true true true - ../sfml/bin/Release;../tmxlite/x64/bin/ReleaseStatic + ../extlibs/sfml/lib;../tmxlite/x64/bin/ReleaseStatic libtmxlite-s.lib;sfml-system.lib;sfml-window.lib;sfml-graphics.lib;%(AdditionalDependencies) diff --git a/SFMLExample/assets/demo.tmx b/SFMLExample/assets/demo.tmx index 3911ae4..6691792 100644 --- a/SFMLExample/assets/demo.tmx +++ b/SFMLExample/assets/demo.tmx @@ -1,5 +1,5 @@ - + diff --git a/SFMLExample/src/SFMLOrthogonalLayer.hpp b/SFMLExample/src/SFMLOrthogonalLayer.hpp index f836310..9bc41f8 100644 --- a/SFMLExample/src/SFMLOrthogonalLayer.hpp +++ b/SFMLExample/src/SFMLOrthogonalLayer.hpp @@ -63,8 +63,20 @@ class MapLayer final : public sf::Drawable MapLayer(const tmx::Map& map, std::size_t idx) { const auto& layers = map.getLayers(); - if (map.getOrientation() == tmx::Orientation::Orthogonal && - idx < layers.size() && layers[idx]->getType() == tmx::Layer::Type::Tile) + if (map.getOrientation() != tmx::Orientation::Orthogonal) + { + std::cout << "Map is not orthogonal - nothing will be drawn" << std::endl; + } + else if (idx >= layers.size()) + { + std::cout << "Layer index " << idx << " is out of range, layer count is " << layers.size() << std::endl; + } + else if (layers[idx]->getType() != tmx::Layer::Type::Tile) + { + std::cout << "layer " << idx << " is not a Tile layer..." << std::endl; + } + + else { //round the chunk size to the nearest tile const auto tileSize = map.getTileSize(); @@ -79,10 +91,6 @@ class MapLayer final : public sf::Drawable m_globalBounds.width = mapSize.width; m_globalBounds.height = mapSize.height; } - else - { - std::cout << "Not a valid orthogonal layer, nothing will be drawn." << std::endl; - } } ~MapLayer() = default; @@ -127,7 +135,7 @@ class MapLayer final : public sf::Drawable as.currentTime += elapsed; tmx::TileLayer::Tile tile; - std::uint32_t animTime = 0; + std::int32_t animTime = 0; auto x = as.animTile.animation.frames.begin(); while (animTime < as.currentTime.asMilliseconds()) { @@ -183,10 +191,8 @@ class MapLayer final : public sf::Drawable layerOpacity = static_cast(layer.getOpacity() / 1.f * 255.f); sf::Color vertColour = sf::Color(200 ,200, 200, layerOpacity); auto offset = layer.getOffset(); - layerOffset.x = offset.x; - layerOffset.x = offset.y; - chunkTileCount.x = tileCount.x; - chunkTileCount.y = tileCount.y; + layerOffset = { static_cast(offset.x), static_cast(offset.y) }; + chunkTileCount = { tileCount.x, tileCount.y }; mapTileSize = tileSize; const auto& tileIDs = layer.getTiles(); @@ -224,8 +230,8 @@ class MapLayer final : public sf::Drawable for (const auto& ca : m_chunkArrays) { sf::Uint32 idx = 0; - std::size_t xPos = static_cast(getPosition().x / mapTileSize.x); - std::size_t yPos = static_cast(getPosition().y / mapTileSize.y); + std::uint32_t xPos = static_cast(getPosition().x / mapTileSize.x); + std::uint32_t yPos = static_cast(getPosition().y / mapTileSize.y); for (auto y = yPos; y < yPos + chunkTileCount.y; ++y) { for (auto x = xPos; x < xPos + chunkTileCount.x; ++x) @@ -242,7 +248,7 @@ class MapLayer final : public sf::Drawable m_activeAnimations.push_back(as); } - sf::Vector2f tileOffset(x * mapTileSize.x, (float)y * mapTileSize.y + mapTileSize.y - ca->tileSetSize.y); + sf::Vector2f tileOffset(static_cast(x) * mapTileSize.x, static_cast(y) * mapTileSize.y + mapTileSize.y - ca->tileSetSize.y); auto idIndex = m_chunkTileIDs[idx].ID - ca->m_firstGID; sf::Vector2f tileIndex(idIndex % ca->tsTileCount.x, idIndex / ca->tsTileCount.x); diff --git a/tmxlite.sln b/tmxlite.sln index 2e3420e..c0b3996 100644 --- a/tmxlite.sln +++ b/tmxlite.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29926.136 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34024.191 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tmxlite", "tmxlite\tmxlite.vcxproj", "{0BC0C535-FEBB-4A83-8197-AF74FA26E100}" EndProject @@ -68,6 +68,7 @@ Global {2298A657-D09A-438E-B976-5EE827966124}.Debug|ARM.ActiveCfg = Debug|Win32 {2298A657-D09A-438E-B976-5EE827966124}.Debug|ARM64.ActiveCfg = Debug|Win32 {2298A657-D09A-438E-B976-5EE827966124}.Debug|x64.ActiveCfg = Debug|x64 + {2298A657-D09A-438E-B976-5EE827966124}.Debug|x64.Build.0 = Debug|x64 {2298A657-D09A-438E-B976-5EE827966124}.Debug|x86.ActiveCfg = Debug|Win32 {2298A657-D09A-438E-B976-5EE827966124}.Debug|x86.Build.0 = Debug|Win32 {2298A657-D09A-438E-B976-5EE827966124}.Release|ARM.ActiveCfg = Release|Win32