Started on GuiIcon, General fixes

This commit is contained in:
Bram Verhulst
2024-05-09 00:46:05 +02:00
parent d3b932df22
commit 8c3a485c2d
22 changed files with 231 additions and 409 deletions

View File

@@ -11,23 +11,28 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="26a0623a-44d5-441c-8048-32ff1dab3479" name="Changes" comment=""> <list default="true" id="26a0623a-44d5-441c-8048-32ff1dab3479" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/Game/Gui/GuiElement.cpp" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Game/Particle/Particle.cpp" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Game/Gui/GuiElement.h" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Game/Particle/Particle.h" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Game/Gui/GuiMeter.cpp" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Game/Gui/GuiMeter.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.Motherload/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Motherload/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/.idea.Motherload/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Motherload/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Player/PlayerDigStart.aseprite" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Player/PlayerDigStart.aseprite" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Engine/BaseGame.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Engine/BaseGame.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Animations/Animation.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Animations/Animation.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/Animations/Animation.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Animations/Animation.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Animations/Animation.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Animations/Animation.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/Animations/Animation.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Animations/Animation.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Game.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Game.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Game.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Game.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Game.vcxproj" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Game.vcxproj" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/Game.vcxproj" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Game.vcxproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Gui/Button.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/GuiButton.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/GridSystem/WorldGridManager.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/GridSystem/WorldGridManager.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Gui/Button.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/GuiButton.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/GridSystem/WorldGridManager.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/GridSystem/WorldGridManager.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Gui/Screen.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/Screen.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/GroundTileTypeManager.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/GroundTileTypeManager.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Gui/Screen.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/Screen.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/Gui/GuiMeter.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/GuiMeter.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Gui/Screens/FuelScreen.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/Screens/FuelScreen.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/Gui/GuiMeter.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Gui/GuiMeter.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Levels/Level.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Levels/Level.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Levels/Level.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Levels/Level.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Levels/World/Building.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Levels/World/Building.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Levels/World/WorldLevel.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Levels/World/WorldLevel.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Levels/World/WorldLevel.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Levels/World/WorldLevel.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Player.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Player.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/Player.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Player.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Game/Player.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/Player.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/TextureManager.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Game/TextureManager.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Resources/animations/player/player_dig_start.png" beforeDir="false" afterPath="$PROJECT_DIR$/Resources/animations/player/player_dig_start.png" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Game/TextureManager.h" beforeDir="false" afterPath="$PROJECT_DIR$/Game/TextureManager.h" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -37,7 +42,7 @@
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY"> <option name="RECENT_BRANCH_BY_REPOSITORY">
<map> <map>
<entry key="$PROJECT_DIR$" value="b6be73019fcebf3558214fcaa91a0a32c6ddcb93" /> <entry key="$PROJECT_DIR$" value="d3b932df22970cf2f14e9dd79721ccae1d938a38" />
</map> </map>
</option> </option>
</component> </component>
@@ -45,210 +50,7 @@
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" /> <setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" /> <setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" /> <setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" /> <setting file="cidr-memory-view://1" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.37.32822/include/algorithm" root0="SKIP_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.37.32822/include/algorithm" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.37.32822/include/type_traits" root0="SKIP_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.37.32822/include/type_traits" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.37.32822/include/vector" root0="SKIP_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.37.32822/include/vector" root0="SKIP_HIGHLIGHTING" />
@@ -257,7 +59,6 @@
<setting file="file://$PROJECT_DIR$/Engine/Texture.cpp" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Engine/Texture.cpp" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Engine/utils.cpp" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Engine/utils.cpp" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Engine/utils.h" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Engine/utils.h" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Game/Animations/Animation.h" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Game/Camera.cpp" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Game/Camera.cpp" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Game/Player.cpp" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Game/Player.cpp" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Game/Player.h" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Game/Player.h" root0="FORCE_HIGHLIGHTING" />
@@ -296,7 +97,7 @@
"node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm", "nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "preferences.pluginManager", "settings.editor.selected.configurable": "preferences.sourceCode.C++",
"vue.rearranger.settings.migration": "true" "vue.rearranger.settings.migration": "true"
}, },
"keyToStringList": { "keyToStringList": {
@@ -446,7 +247,9 @@
<workItem from="1714763594789" duration="1983000" /> <workItem from="1714763594789" duration="1983000" />
<workItem from="1714824060444" duration="811000" /> <workItem from="1714824060444" duration="811000" />
<workItem from="1715031948901" duration="46000" /> <workItem from="1715031948901" duration="46000" />
<workItem from="1715063584283" duration="6583000" /> <workItem from="1715063584283" duration="11702000" />
<workItem from="1715170674144" duration="2320000" />
<workItem from="1715206284291" duration="2013000" />
</task> </task>
<task id="LOCAL-00001" summary="Rework Tile detection system"> <task id="LOCAL-00001" summary="Rework Tile detection system">
<option name="closed" value="true" /> <option name="closed" value="true" />
@@ -568,7 +371,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1714654669410</updated> <updated>1714654669410</updated>
</task> </task>
<option name="localTasksCounter" value="16" /> <task id="LOCAL-00016" summary="Fix digging">
<option name="closed" value="true" />
<created>1715070920513</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1715070920513</updated>
</task>
<option name="localTasksCounter" value="17" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@@ -586,14 +397,14 @@
<MESSAGE value="Fixed sidePieces (Need to add more cases tho)" /> <MESSAGE value="Fixed sidePieces (Need to add more cases tho)" />
<MESSAGE value="Pre Point2f Nuke&#10;Fixed drawing,&#10;Added general optimisations" /> <MESSAGE value="Pre Point2f Nuke&#10;Fixed drawing,&#10;Added general optimisations" />
<MESSAGE value="Remove Point2f, replace with Vector2f" /> <MESSAGE value="Remove Point2f, replace with Vector2f" />
<MESSAGE value="Fix digging" />
<MESSAGE value="Added Buildings&#10;Fixed rendering bugs with edges" /> <MESSAGE value="Added Buildings&#10;Fixed rendering bugs with edges" />
<MESSAGE value="Add alot of memory leak fixes" /> <MESSAGE value="Add alot of memory leak fixes" />
<MESSAGE value="Add fps" /> <MESSAGE value="Add fps" />
<MESSAGE value="Add player turning (Finally)" /> <MESSAGE value="Add player turning (Finally)" />
<MESSAGE value="Update gitignore" /> <MESSAGE value="Update gitignore" />
<MESSAGE value="Remove All Memory leaks" /> <MESSAGE value="Remove All Memory leaks" />
<option name="LAST_COMMIT_MESSAGE" value="Remove All Memory leaks" /> <MESSAGE value="Fix digging" />
<option name="LAST_COMMIT_MESSAGE" value="Fix digging" />
</component> </component>
<component name="XSLT-Support.FileAssociations.UIState"> <component name="XSLT-Support.FileAssociations.UIState">
<expand /> <expand />

View File

@@ -169,6 +169,8 @@ void BaseGame::InitializeGameEngine()
SDL_GameControllerAddMappingsFromFile("gamecontrollerdb.txt"); SDL_GameControllerAddMappingsFromFile("gamecontrollerdb.txt");
SDL_RendererInfo m_RendererInfo;
SDL_GetRendererInfo(SDL_GetRenderer(m_pWindow), &m_RendererInfo);
m_Initialized = true; m_Initialized = true;
} }

View File

@@ -4,7 +4,8 @@
#include <iostream> #include <iostream>
#include "utils.h" #include "utils.h"
Animation::Animation(Texture* pTexture, int frames, float frameDuration, Rectf srcRect, bool isLooping): m_pTexture(pTexture), m_SrcRect(srcRect), m_Frames(frames), m_isLooping(isLooping), m_FrameDuration(frameDuration) { Animation::Animation(Texture* pTexture, int frames, float frameDuration, Rectf srcRect, bool isLooping): m_pTexture(pTexture), m_SrcRect(srcRect), m_Frames(frames),
m_isLooping(isLooping), m_FrameDuration(frameDuration) {
} }
void Animation::Update(float elapsedSec) { void Animation::Update(float elapsedSec) {
@@ -33,3 +34,24 @@ void Animation::Draw(const Vector2f& pos, const Rectf& dst) const {
m_pTexture->Draw(dst, src, m_isFlipped); m_pTexture->Draw(dst, src, m_isFlipped);
} }
void Animation::SetPlaying(bool isPlaying) {
m_isPlaying = isPlaying;
}
void Animation::SetFlipped(bool isFlipped) {
m_isFlipped = isFlipped;
}
void Animation::Reset() {
m_CurrentFrame = 0;
m_hasPlayedOnce = false;
m_isPlaying = true;
m_FrameTimer = m_FrameDuration;
}
bool Animation::IsDone() const {
return m_hasPlayedOnce && !m_isLooping;
}
int Animation::GetFrameCount() const {
return m_Frames;
}
void Animation::SetFrame(int frame) {
m_CurrentFrame = frame;
}

View File

@@ -5,29 +5,20 @@ class Animation
{ {
public: public:
Animation(Texture* pTexture, int frames, float frameDuration, Rectf srcRect, bool isLooping = true); Animation(Texture* pTexture, int frames, float frameDuration, Rectf srcRect, bool isLooping = true);
~Animation() = default;
void Update(float elapsedSec); void Update(float elapsedSec);
void Draw(const Vector2f& pos) const; void Draw(const Vector2f& pos) const;
void Draw(const Vector2f& pos, const Rectf& dst) const; void Draw(const Vector2f& pos, const Rectf& dst) const;
void SetPlaying(bool isPlaying) { void SetPlaying(bool isPlaying);
m_isPlaying = isPlaying; void SetFlipped(bool isFlipped);
}
void SetFlipped(bool isFlipped) {
m_isFlipped = isFlipped;
}
void Reset() { void Reset();
m_CurrentFrame = 0; bool IsDone() const;
m_hasPlayedOnce = false;
m_isPlaying = true; int GetFrameCount() const;
m_FrameTimer = m_FrameDuration; void SetFrame(int frame);
}
bool IsDone() const {
return m_hasPlayedOnce && !m_isLooping;
}
private: private:
Texture* m_pTexture; Texture* m_pTexture;

View File

@@ -30,7 +30,6 @@ void Game::Initialize() {
void Game::Cleanup() { void Game::Cleanup() {
//TODO: ask how 2 delete the TextureManager
ScreenManager::DestroyInstance(); ScreenManager::DestroyInstance();
GroundTileTypeManager::DestroyInstance(); GroundTileTypeManager::DestroyInstance();
TextureManager::DestroyInstance(); TextureManager::DestroyInstance();
@@ -40,7 +39,7 @@ void Game::Update(float elapsedSec) {
const Uint8* pStates = SDL_GetKeyboardState(nullptr); const Uint8* pStates = SDL_GetKeyboardState(nullptr);
if (m_IsRightMouseDown) { if (m_IsRightMouseDown) {
const Vector2f newCameraPos = Vector2f { m_MousePos.x + m_MouseOffset.x, m_MousePos.y + m_MouseOffset.y }; const Vector2f newCameraPos = Vector2f { m_MousePosition.x + m_MouseOffset.x, m_MousePosition.y + m_MouseOffset.y };
m_Camera.SetPosition(Vector2f { -newCameraPos.x, -newCameraPos.y }); m_Camera.SetPosition(Vector2f { -newCameraPos.x, -newCameraPos.y });
} }
else { else {
@@ -64,33 +63,17 @@ void Game::ProcessKeyUpEvent(const SDL_KeyboardEvent& e) {
} }
void Game::ProcessMouseMotionEvent(const SDL_MouseMotionEvent& e) { void Game::ProcessMouseMotionEvent(const SDL_MouseMotionEvent& e) {
m_MousePos = Vector2f { float(e.x), float(e.y) }; m_MousePosition = Vector2f { float(e.x), float(e.y) };
m_pCurrentLevel->MouseMove(Vector2f { float(e.x), float(e.y) }); m_pCurrentLevel->MouseMove(Vector2f { float(e.x), float(e.y) });
} }
void Game::ProcessMouseDownEvent(const SDL_MouseButtonEvent& e) { void Game::ProcessMouseDownEvent(const SDL_MouseButtonEvent& e) {
m_IsRightMouseDown = e.button == SDL_BUTTON_RIGHT; m_IsRightMouseDown = e.button == SDL_BUTTON_RIGHT;
m_MouseOffset = Vector2f { -m_Camera.GetPosition().x - m_MousePos.x, -m_Camera.GetPosition().y - m_MousePos.y }; m_MouseOffset = Vector2f { -m_Camera.GetPosition().x - m_MousePosition.x, -m_Camera.GetPosition().y - m_MousePosition.y };
} }
void Game::ProcessMouseUpEvent(const SDL_MouseButtonEvent& e) { void Game::ProcessMouseUpEvent(const SDL_MouseButtonEvent& e) {
m_IsRightMouseDown = e.button == SDL_BUTTON_RIGHT ? false : m_IsRightMouseDown; m_IsRightMouseDown = e.button == SDL_BUTTON_RIGHT ? false : m_IsRightMouseDown;
//std::cout << "MOUSEBUTTONUP event: ";
//switch ( e.button )
//{
//case SDL_BUTTON_LEFT:
// std::cout << " left button " << std::endl;
// break;
//case SDL_BUTTON_RIGHT:k
// std::cout << " right button " << std::endl;
// break;
//case SDL_BUTTON_MIDDLE:
// std::cout << " middle button " << std::endl;
// break;
//}
} }
void Game::ProcessMouseWheelEvent(const SDL_MouseWheelEvent& e) { void Game::ProcessMouseWheelEvent(const SDL_MouseWheelEvent& e) {
float newScale = m_Camera.GetScale() - e.preciseY * 0.1f; float newScale = m_Camera.GetScale() - e.preciseY * 0.1f;

View File

@@ -32,7 +32,6 @@ public:
static Rectf VIEWPORT; static Rectf VIEWPORT;
private: private:
// FUNCTIONS
void Initialize(); void Initialize();
void Cleanup(); void Cleanup();
@@ -43,7 +42,7 @@ private:
Level* m_pCurrentLevel; Level* m_pCurrentLevel;
Vector2f m_MousePos {}; Vector2f m_MousePosition {};
Vector2f m_MouseOffset {}; Vector2f m_MouseOffset {};
bool m_IsRightMouseDown {}; bool m_IsRightMouseDown {};

View File

@@ -467,6 +467,7 @@
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BrowseInformation> <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BrowseInformation>
</ClCompile> </ClCompile>
<ClCompile Include="main.cpp" /> <ClCompile Include="main.cpp" />
<ClCompile Include="Particle\Particle.cpp" />
<ClCompile Include="pch.cpp" /> <ClCompile Include="pch.cpp" />
<ClCompile Include="Player.cpp" /> <ClCompile Include="Player.cpp" />
<ClCompile Include="TextureManager.cpp" /> <ClCompile Include="TextureManager.cpp" />
@@ -489,6 +490,7 @@
<ClInclude Include="Levels\MainMenu\MainMenuLevel.h" /> <ClInclude Include="Levels\MainMenu\MainMenuLevel.h" />
<ClInclude Include="Levels\World\Building.h" /> <ClInclude Include="Levels\World\Building.h" />
<ClInclude Include="Levels\World\WorldLevel.h" /> <ClInclude Include="Levels\World\WorldLevel.h" />
<ClInclude Include="Particle\Particle.h" />
<ClInclude Include="pch.h" /> <ClInclude Include="pch.h" />
<ClInclude Include="Player.h" /> <ClInclude Include="Player.h" />
<ClInclude Include="TextureManager.h" /> <ClInclude Include="TextureManager.h" />

View File

@@ -20,31 +20,15 @@ WorldGridManager::~WorldGridManager() {
delete m_worldTiles[x][y]; delete m_worldTiles[x][y];
} }
} }
std::cout << "Deleting static" << std::endl;
// delete Tiles::AIR;
// delete Tiles::DIRT;
//
// delete Tiles::Hazards::LAVA;
// delete Tiles::Hazards::STONE;
//
// delete Tiles::Ores::BRONZE;
// delete Tiles::Ores::GOLD;
// delete Tiles::Ores::IRON;
//
// delete Tiles::Special::GRASS;
// delete Tiles::Special::HARD_LEFT;
// delete Tiles::Special::HARD_MIDDLE;
// delete Tiles::Special::HARD_RIGHT;
} }
surroundingTiles WorldGridManager::GetSurroundingTiles(const WorldTile* world_tile) { surroundingTiles WorldGridManager::GetSurroundingTiles(const WorldTile* world_tile) {
surroundingTiles tiles; surroundingTiles tiles;
Vector2f pos = world_tile->GetPosition(); Vector2f pos = world_tile->GetPosition();
Vector2f gridCoords = this->GetIndexFromPosition(pos); Vector2f gridCoords = this->GetIndexFromPosition(pos);
int x = gridCoords.x; const int x = (int)gridCoords.x;
//TODO: Stupid fix, fix this //TODO: Stupid fix, fix this
int y = gridCoords.y - 1; const int y = (int)gridCoords.y - 1;
tiles.SetTile(TileDirection::TopLeft, this->GetTileAtIndex(x - 1, y - 1)); tiles.SetTile(TileDirection::TopLeft, this->GetTileAtIndex(x - 1, y - 1));
tiles.SetTile(TileDirection::TopMiddle, this->GetTileAtIndex(x, y - 1)); tiles.SetTile(TileDirection::TopMiddle, this->GetTileAtIndex(x, y - 1));

View File

@@ -14,8 +14,7 @@ static const int TILE_HEIGHT = 50;
class WorldTile; class WorldTile;
enum TileDirection enum TileDirection {
{
TopLeft, TopLeft,
TopMiddle, TopMiddle,
TopRight, TopRight,
@@ -29,8 +28,7 @@ enum TileDirection
BottomRight BottomRight
}; };
struct surroundingTiles struct surroundingTiles {
{
std::vector<WorldTile *> m_tiles { 8, nullptr }; std::vector<WorldTile *> m_tiles { 8, nullptr };
@@ -41,29 +39,20 @@ struct surroundingTiles
WorldTile * GetTile(TileDirection direction) { WorldTile * GetTile(TileDirection direction) {
return m_tiles[static_cast<int>(direction)]; return m_tiles[static_cast<int>(direction)];
} }
// bool IsAllType(const GroundTileType& type) {
// for (const auto& tile : m_tiles) {
// if (tile.second == nullptr) {
// return false;
// }
// if (tile.second->GetTileType() != &type) {
// return false;
// }
// }
// return true;
// }
}; };
class WorldGridManager class WorldGridManager {
{
public: public:
WorldGridManager(); WorldGridManager();
~WorldGridManager(); ~WorldGridManager();
surroundingTiles GetSurroundingTiles(const WorldTile* world_tile); surroundingTiles GetSurroundingTiles(const WorldTile* world_tile);
Vector2f GetIndexFromPosition(Vector2f position); static Vector2f GetIndexFromPosition(Vector2f position);
WorldGridManager(const WorldGridManager& other) = delete;
WorldGridManager(WorldGridManager&& other) = default;
WorldGridManager& operator=(const WorldGridManager& other) = delete;
WorldGridManager& operator=(WorldGridManager&& other) = delete;
WorldGridManager(const WorldGridManager& other) = default;
WorldTile * GetTileAtIndex(const int x, const int y) const; WorldTile * GetTileAtIndex(const int x, const int y) const;
WorldTile * GetTileAtWorldPos(const Vector2f& pos) const; WorldTile * GetTileAtWorldPos(const Vector2f& pos) const;

View File

@@ -26,10 +26,6 @@ void GroundTileTypeManager::DestroyInstance() {
delete m_pInstance; delete m_pInstance;
} }
GroundTileTypeManager::GroundTileTypeManager() { GroundTileTypeManager::GroundTileTypeManager() = default;
}
// void GroundTileTypeManager::Initialize() { GroundTileTypeManager::~GroundTileTypeManager() = default;
// AIR = new GroundTileType("", GroundTileTypes::Air);
// }
GroundTileTypeManager::~GroundTileTypeManager() {
}

View File

@@ -2,6 +2,7 @@
#include "GuiMeter.h" #include "GuiMeter.h"
#include "TextureManager.h" #include "TextureManager.h"
#include "utils.h"
GuiMeter::GuiMeter(const std::string& filePath, Vector2f pos, Vector2f frameSize, int frameCount, TextureManager* manager): m_Position(pos), m_FrameCount(frameCount) { GuiMeter::GuiMeter(const std::string& filePath, Vector2f pos, Vector2f frameSize, int frameCount, TextureManager* manager): m_Position(pos), m_FrameCount(frameCount) {
m_Animation = new Animation(manager->GetTexture(filePath),frameCount, 0.0f, Rectf{0, 0, frameSize.x, frameSize.y}, false); m_Animation = new Animation(manager->GetTexture(filePath),frameCount, 0.0f, Rectf{0, 0, frameSize.x, frameSize.y}, false);
@@ -13,6 +14,6 @@ void GuiMeter::Draw() const {
m_Animation->Draw(m_Position); m_Animation->Draw(m_Position);
} }
void GuiMeter::Update(float elapsedSec) { void GuiMeter::Update(float elapsedSec) {
const int frame = static_cast<int>(utils::map(m_Value, 0.0f, m_MaxValue, 0, (float)m_Animation->GetFrameCount()));
m_Animation->SetFrame(frame);
} }

View File

@@ -15,11 +15,17 @@ public:
virtual void Draw() const override; virtual void Draw() const override;
virtual void Update(float elapsedSec) override; virtual void Update(float elapsedSec) override;
void SetValue(float value) {
m_Value = value;
}
private: private:
Animation* m_Animation{ nullptr }; Animation* m_Animation{ nullptr };
Vector2f m_Position; Vector2f m_Position;
float m_Value{ 0.0f }; float m_Value{ 0.0f };
const float m_MaxValue{ 100.0f };
int m_FrameCount; int m_FrameCount;
}; };

View File

@@ -9,5 +9,4 @@ Level::Level() : m_pCamera(nullptr) {
Level::Level(Camera* camera) { Level::Level(Camera* camera) {
m_pCamera = camera; m_pCamera = camera;
} }
Level::~Level() { Level::~Level() = default;
}

View File

@@ -6,7 +6,7 @@ class Level
{ {
public: public:
Level(); Level();
Level(Camera* camera); explicit Level(Camera* camera);
virtual ~Level(); virtual ~Level();
Level(const Level& other) = default; Level(const Level& other) = default;

View File

@@ -8,6 +8,8 @@ public:
Building(const std::string& filePath, const Vector2f& position, TextureManager* pTextureManager); Building(const std::string& filePath, const Vector2f& position, TextureManager* pTextureManager);
Building(const Building& other) = delete; Building(const Building& other) = delete;
Building(Building&& other) = delete; Building(Building&& other) = delete;
Building& operator=(const Building& other) = delete;
Building& operator=(Building&& other) = delete;
~Building(); ~Building();

View File

@@ -16,11 +16,11 @@
class GroundTileType; class GroundTileType;
WorldLevel::WorldLevel(Camera* camera, Rectf viewport): Level(camera), WorldLevel::WorldLevel(Camera* camera, Rectf viewport): Level(camera),
m_gridManager(WorldGridManager()), m_GridManager(WorldGridManager()),
m_player(Player { Vector2f { 0, 100 }, TextureManager::GetInstance() }), m_Player(Player { Vector2f { 0, 100 }, TextureManager::GetInstance() }),
m_mousePos { 0, 0 }, m_MousePos { 0, 0 },
m_viewport(viewport), m_Viewport(viewport),
m_screenManager(ScreenManager::GetInstance()) { m_ScreenManager(ScreenManager::GetInstance()) {
InitializeGroundTiles(); InitializeGroundTiles();
// The grid is 34 x 50 big, the top center is 0,0 in world coords // The grid is 34 x 50 big, the top center is 0,0 in world coords
for (int x { 0 }; x < WORLD_WIDTH; ++x) { for (int x { 0 }; x < WORLD_WIDTH; ++x) {
@@ -28,56 +28,57 @@ WorldLevel::WorldLevel(Camera* camera, Rectf viewport): Level(camera),
const int actualX = x - WORLD_WIDTH / 2; const int actualX = x - WORLD_WIDTH / 2;
Vector2f pos = Vector2f { float(actualX * TILE_WIDTH), -float(y * TILE_HEIGHT) - TILE_HEIGHT }; Vector2f pos = Vector2f { float(actualX * TILE_WIDTH), -float(y * TILE_HEIGHT) - TILE_HEIGHT };
GroundTileType* type = getRandomGroundTile(); GroundTileType* type = getRandomGroundTile();
m_gridManager.SetTileAtIndex(x, y, new WorldTile { pos, type, TextureManager::GetInstance(), &m_gridManager }); m_GridManager.SetTileAtIndex(x, y, new WorldTile { pos, type, TextureManager::GetInstance(), &m_GridManager });
} }
} }
for (int x { 0 }; x < WORLD_WIDTH; ++x) { for (int x { 0 }; x < WORLD_WIDTH; ++x) {
m_gridManager.GetTileAtIndex(x, 0)->SetTileType(GroundTileTypeManager::GetInstance()->AIR); m_GridManager.GetTileAtIndex(x, 0)->SetTileType(GroundTileTypeManager::GetInstance()->AIR);
m_gridManager.GetTileAtIndex(x, 1)->SetTileType(GroundTileTypeManager::GetInstance()->GRASS); m_GridManager.GetTileAtIndex(x, 1)->SetTileType(GroundTileTypeManager::GetInstance()->GRASS);
} }
m_refeulBuilding = new Building { "buildings/fuelStation.png", Vector2f { -700, -52 }, TextureManager::GetInstance() }; m_RefeulBuilding = new Building { "buildings/fuelStation.png", Vector2f { -700, -52 }, TextureManager::GetInstance() };
m_gridManager.GetTileAtWorldPos(Vector2f { -700, -50 })->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT); m_GridManager.GetTileAtWorldPos(Vector2f { -700, -50 })->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT);
m_gridManager.GetTileAtWorldPos(Vector2f { -650, -50 })->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE); m_GridManager.GetTileAtWorldPos(Vector2f { -650, -50 })->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f { -600, -50 })->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT); m_GridManager.GetTileAtWorldPos(Vector2f { -600, -50 })->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT);
m_mineralBuilding = new Building { "buildings/mineralStation.png", Vector2f { -350, -52 }, TextureManager::GetInstance() }; m_MineralBuilding = new Building { "buildings/mineralStation.png", Vector2f { -350, -52 }, TextureManager::GetInstance() };
m_gridManager.GetTileAtWorldPos(Vector2f {-400, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT); m_GridManager.GetTileAtWorldPos(Vector2f {-400, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT);
m_gridManager.GetTileAtWorldPos(Vector2f {-350, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE); m_GridManager.GetTileAtWorldPos(Vector2f {-350, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {-300, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE); m_GridManager.GetTileAtWorldPos(Vector2f {-300, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {-250, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE); m_GridManager.GetTileAtWorldPos(Vector2f {-250, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {-200, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE); m_GridManager.GetTileAtWorldPos(Vector2f {-200, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {-150, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT); m_GridManager.GetTileAtWorldPos(Vector2f {-150, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT);
m_junkBuilding = new Building { "buildings/junkStation.png", Vector2f { 250, -52 }, TextureManager::GetInstance() };
m_gridManager.GetTileAtWorldPos(Vector2f {200, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT);
m_gridManager.GetTileAtWorldPos(Vector2f {250, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {300, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {350, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {400, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {450, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT);
m_repairBuilding = new Building { "buildings/repairStation.png", Vector2f { 700, -52 }, TextureManager::GetInstance() };
m_gridManager.GetTileAtWorldPos(Vector2f {650, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT);
m_gridManager.GetTileAtWorldPos(Vector2f {700, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {750, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_gridManager.GetTileAtWorldPos(Vector2f {800, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT);
m_JunkBuilding = new Building { "buildings/junkStation.png", Vector2f { 250, -52 }, TextureManager::GetInstance() };
m_GridManager.GetTileAtWorldPos(Vector2f {200, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT);
m_GridManager.GetTileAtWorldPos(Vector2f {250, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_GridManager.GetTileAtWorldPos(Vector2f {300, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_GridManager.GetTileAtWorldPos(Vector2f {350, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_GridManager.GetTileAtWorldPos(Vector2f {400, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_GridManager.GetTileAtWorldPos(Vector2f {450, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT);
m_RepairBuilding = new Building { "buildings/repairStation.png", Vector2f { 700, -52 }, TextureManager::GetInstance() };
m_GridManager.GetTileAtWorldPos(Vector2f {650, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_LEFT);
m_GridManager.GetTileAtWorldPos(Vector2f {700, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_GridManager.GetTileAtWorldPos(Vector2f {750, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_MIDDLE);
m_GridManager.GetTileAtWorldPos(Vector2f {800, -50})->SetTileType(GroundTileTypeManager::GetInstance()->HARD_RIGHT);
m_Meter = new GuiMeter("gui/main/fuel_guage.png", Vector2f{100, 100}, Vector2f{336, 146}, 100, TextureManager::GetInstance());
Texture* test = new Texture("gui/main/fuel_guage.png");
} }
WorldLevel::~WorldLevel() { WorldLevel::~WorldLevel() {
delete m_refeulBuilding; delete m_RefeulBuilding;
delete m_mineralBuilding; delete m_MineralBuilding;
delete m_junkBuilding; delete m_JunkBuilding;
delete m_repairBuilding; delete m_RepairBuilding;
} }
void WorldLevel::Update(float elapsedSec) { void WorldLevel::Update(float elapsedSec) {
m_fps = 1 / elapsedSec; m_Fps = 1 / elapsedSec;
m_Meter->Update(elapsedSec);
int mouseX, mouseY; int mouseX, mouseY;
SDL_GetMouseState(&mouseX, &mouseY); SDL_GetMouseState(&mouseX, &mouseY);
m_mousePos = Vector2f { float(mouseX), float(mouseY) }; m_MousePos = Vector2f { float(mouseX), float(mouseY) };
m_mousePos = m_pCamera->TransformMouse(m_mousePos); m_MousePos = m_pCamera->TransformMouse(m_MousePos);
// for (size_t x { 0 }; x < WORLD_WIDTH; ++x) { // for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
// for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) { // for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) {
@@ -85,11 +86,11 @@ void WorldLevel::Update(float elapsedSec) {
// } // }
// } // }
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) { for (int x { 0 }; x < WORLD_WIDTH; ++x) {
for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) { for (int y { 0 }; y < WORLD_HEIGHT; ++y) {
m_gridManager.GetTileAtIndex(x, y)->Update(m_pCamera); m_GridManager.GetTileAtIndex(x, y)->Update(m_pCamera);
if (m_gridManager.GetTileAtIndex(x, y)->GetCollisionRect().Contains(m_mousePos)) { if (m_GridManager.GetTileAtIndex(x, y)->GetCollisionRect().Contains(m_MousePos)) {
m_pSelectedTile = m_gridManager.GetTileAtIndex(x, y); m_pSelectedTile = m_GridManager.GetTileAtIndex(x, y);
//selectedTile->m_Hightlight = true; //selectedTile->m_Hightlight = true;
} }
} }
@@ -117,28 +118,28 @@ void WorldLevel::Update(float elapsedSec) {
// } // }
// } // }
m_player.Update(elapsedSec, *this); m_Player.Update(elapsedSec, *this);
//Move the camera when the player gets to the edge //Move the camera when the player gets to the edge
if(m_FollowPlayer) { if(m_FollowPlayer) {
Vector2f playerPos = m_player.GetPosition(); Vector2f playerPos = m_Player.GetPosition();
Vector2f newCameraPos = m_pCamera->GetPosition(); Vector2f newCameraPos = m_pCamera->GetPosition();
if (playerPos.x < newCameraPos.x + 50) { if (playerPos.x < newCameraPos.x + 50) {
newCameraPos.x = playerPos.x - 50; newCameraPos.x = playerPos.x - 50;
} }
if (playerPos.x > newCameraPos.x + m_viewport.width - 100) { if (playerPos.x > newCameraPos.x + m_Viewport.width - 100) {
newCameraPos.x = playerPos.x - m_viewport.width + 100; newCameraPos.x = playerPos.x - m_Viewport.width + 100;
} }
if (playerPos.y < newCameraPos.y + 50) { if (playerPos.y < newCameraPos.y + 50) {
newCameraPos.y = playerPos.y - 50; newCameraPos.y = playerPos.y - 50;
} }
if (playerPos.y > newCameraPos.y + m_viewport.height - 50) { if (playerPos.y > newCameraPos.y + m_Viewport.height - 50) {
newCameraPos.y = playerPos.y - m_viewport.height + 50; newCameraPos.y = playerPos.y - m_Viewport.height + 50;
} }
m_pCamera->SetPosition(newCameraPos); m_pCamera->SetPosition(newCameraPos);
} }
Screen* screen = m_screenManager->GetCurrentScreen(); Screen* screen = m_ScreenManager->GetCurrentScreen();
if (screen != nullptr) { if (screen != nullptr) {
screen->Update(elapsedSec); screen->Update(elapsedSec);
} }
@@ -158,11 +159,11 @@ void WorldLevel::Draw() const {
} }
utils::SetColor(Colors::WHITE); utils::SetColor(Colors::WHITE);
utils::FillEllipse(m_mousePos, 2, 2); utils::FillEllipse(m_MousePos, 2, 2);
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) { for (int x { 0 }; x < WORLD_WIDTH; ++x) {
for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) { for (int y { 0 }; y < WORLD_HEIGHT; ++y) {
m_gridManager.GetTileAtIndex(x, y)->Draw(); m_GridManager.GetTileAtIndex(x, y)->Draw();
} }
} }
@@ -173,28 +174,30 @@ void WorldLevel::Draw() const {
m_pSelectedTile->Draw(); m_pSelectedTile->Draw();
} }
m_refeulBuilding->Draw(); m_RefeulBuilding->Draw();
m_mineralBuilding->Draw(); m_MineralBuilding->Draw();
m_junkBuilding->Draw(); m_JunkBuilding->Draw();
m_repairBuilding->Draw(); m_RepairBuilding->Draw();
m_player.Draw(); m_Player.Draw();
utils::SetColor(Colors::GREEN); utils::SetColor(Colors::GREEN);
utils::DrawArrow(Vector2f{0, 0}, m_mousePos); utils::DrawArrow(Vector2f{0, 0}, m_MousePos);
m_pCamera->EndRendering(); m_pCamera->EndRendering();
utils::FillRect(utils::GetMousePos(), 10, 10); utils::FillRect(utils::GetMousePos(), 10, 10);
utils::DrawRect(50, 50, m_viewport.width - 100, m_viewport.height - 100); utils::DrawRect(50, 50, m_Viewport.width - 100, m_Viewport.height - 100);
const Screen* screen = m_screenManager->GetCurrentScreen(); const Screen* screen = m_ScreenManager->GetCurrentScreen();
if (screen != nullptr) { if (screen != nullptr) {
screen->Draw(); screen->Draw();
} }
m_Meter->Draw();
} }
void WorldLevel::MouseMove(const Vector2f& mousePos) { void WorldLevel::MouseMove(const Vector2f& mousePos) {
m_mousePos = mousePos; m_MousePos = mousePos;
} }
void WorldLevel::ProcessImGui() { void WorldLevel::ProcessImGui() {
@@ -259,7 +262,7 @@ void WorldLevel::ProcessImGui() {
ImGui::EndMenu(); ImGui::EndMenu();
} }
if (ImGui::BeginMenu(std::to_string(m_fps).c_str())) { if (ImGui::BeginMenu(std::to_string(m_Fps).c_str())) {
ImGui::EndMenu(); ImGui::EndMenu();
} }
@@ -280,7 +283,7 @@ void WorldLevel::ProcessImGui() {
ImGui::Text("Camera Scale: %f", m_pCamera->GetScale()); ImGui::Text("Camera Scale: %f", m_pCamera->GetScale());
ImGui::Text("Is Right Mouse Down: %s", utils::isMouseDown(0) ? "true" : "false"); ImGui::Text("Is Right Mouse Down: %s", utils::isMouseDown(0) ? "true" : "false");
if (ImGui::Button("Reset Camera")) { if (ImGui::Button("Reset Camera")) {
m_pCamera->SetPosition(Vector2f { -m_viewport.width / 2, -m_viewport.height / 2 }); m_pCamera->SetPosition(Vector2f { -m_Viewport.width / 2, -m_Viewport.height / 2 });
m_pCamera->SetScale(1.0f); m_pCamera->SetScale(1.0f);
} }
ImGui::Checkbox("Follow Player", &m_FollowPlayer); ImGui::Checkbox("Follow Player", &m_FollowPlayer);
@@ -289,9 +292,12 @@ void WorldLevel::ProcessImGui() {
if (m_ShowPlayerInfo) { if (m_ShowPlayerInfo) {
ImGui::Begin("Player Info", &m_ShowPlayerInfo, ImGuiWindowFlags_AlwaysAutoResize); ImGui::Begin("Player Info", &m_ShowPlayerInfo, ImGuiWindowFlags_AlwaysAutoResize);
ImGui::Text("Player Position: (%f, %f)", m_player.GetPosition().x, m_player.GetPosition().y); ImGui::Text("Player Position: (%f, %f)", m_Player.GetPosition().x, m_Player.GetPosition().y);
ImGui::Text("Player Velocity: (%f, %f)", m_player.GetVelocity().x, m_player.GetVelocity().y); ImGui::Text("Player Velocity: (%f, %f)", m_Player.GetVelocity().x, m_Player.GetVelocity().y);
ImGui::End(); ImGui::End();
m_player.ProcessImGui(); m_Player.ProcessImGui();
} }
} }
WorldGridManager& WorldLevel::GetGridManager() {
return m_GridManager;
}

View File

@@ -6,6 +6,7 @@
#include "GridSystem/WorldGridManager.h" #include "GridSystem/WorldGridManager.h"
#include "Gui/Screens/ScreenManager.h" #include "Gui/Screens/ScreenManager.h"
#include "Camera.h" #include "Camera.h"
#include "Gui/GuiMeter.h"
class WorldLevel : public Level class WorldLevel : public Level
{ {
@@ -22,29 +23,29 @@ public:
void MouseMove(const Vector2f& mousePos) override; void MouseMove(const Vector2f& mousePos) override;
void ProcessImGui() override; void ProcessImGui() override;
WorldGridManager& GetGridManager() { WorldGridManager& GetGridManager();
return m_gridManager;
}
std::vector<Collision::CollisionRect> m_Rects; std::vector<Collision::CollisionRect> m_Rects;
private: private:
double m_fps{ 0.0f }; double m_Fps{ 0.0f };
WorldGridManager m_gridManager {}; WorldGridManager m_GridManager;
Player m_player; Player m_Player;
Vector2f m_mousePos {}; Vector2f m_MousePos {};
Rectf m_viewport; Rectf m_Viewport;
ScreenManager* m_screenManager; ScreenManager* m_ScreenManager;
WorldTile* m_pSelectedTile { nullptr }; WorldTile* m_pSelectedTile { nullptr };
Building* m_refeulBuilding; Building* m_RefeulBuilding;
Building* m_mineralBuilding; Building* m_MineralBuilding;
Building* m_junkBuilding; Building* m_JunkBuilding;
Building* m_repairBuilding; Building* m_RepairBuilding;
GuiMeter* m_Meter{ nullptr };
// ImGui Vars // ImGui Vars

View File

@@ -0,0 +1,10 @@
#include "pch.h"
#include "Particle.h"
Particle::Particle(const Vector2f& pos, const Vector2f& velocity, Texture* pTexture): m_Position{ pos }, m_Velocity{ velocity }, m_pTexture{ pTexture }
{}
void Particle::Update(float elapsedSec) {
}
void Particle::Draw() const {
}

16
Game/Particle/Particle.h Normal file
View File

@@ -0,0 +1,16 @@
#pragma once
#include "Texture.h"
class Particle {
public:
Particle() = default;
Particle(const Vector2f& pos, const Vector2f& velocity, Texture* pTexture);
void Update(float elapsedSec);
void Draw() const;
private:
Vector2f m_Position;
Vector2f m_Velocity;
Vector2f m_Acceleration;
Texture* m_pTexture;
};

View File

@@ -57,7 +57,7 @@ void Player::Draw() const {
const int frameWidth = 70; //TODO: fix this const int frameWidth = 70; //TODO: fix this
int halfFrameWidth = frameWidth / 2; int halfFrameWidth = frameWidth / 2;
float bobOffset = m_BobUp ? 1 : 0; int bobOffset = m_BobUp ? 1 : 0;
float rotateOffset = std::abs(m_Vel.x) / 40; float rotateOffset = std::abs(m_Vel.x) / 40;
Vector2f drawPos = Vector2f { center.x, center.y + 9 + bobOffset }; Vector2f drawPos = Vector2f { center.x, center.y + 9 + bobOffset };

View File

@@ -22,7 +22,6 @@ Texture * TextureManager::GetTexture(const std::string& name) {
return pTexture; return pTexture;
} }
TextureManager::~TextureManager() { TextureManager::~TextureManager() {
//TODO: Loop over the m_Textures to delete them
for (const auto& p : m_Textures) { for (const auto& p : m_Textures) {
delete p.second; delete p.second;
} }

View File

@@ -3,18 +3,21 @@
#include "Texture.h" #include "Texture.h"
class TextureManager class TextureManager {
{
public: public:
static TextureManager * GetInstance(); static TextureManager * GetInstance();
static void DestroyInstance(); static void DestroyInstance();
Texture* GetTexture(const std::string& name); Texture* GetTexture(const std::string& name);
TextureManager(const TextureManager& other) = delete;
TextureManager& operator=(const TextureManager& other) = delete;
TextureManager(TextureManager&& other) = delete;
TextureManager& operator=(TextureManager&& other) = delete;
private: private:
TextureManager() = default; TextureManager() = default;
~TextureManager(); ~TextureManager();
static TextureManager* m_pInstance; static TextureManager* m_pInstance;
std::map<std::string, Texture *> m_Textures {}; std::map<std::string, Texture *> m_Textures {};
}; };